Data binding knockout.js-根访问视图模型
是否有方法从列表中某个项的回调内部访问根viewmodel 例如:Data binding knockout.js-根访问视图模型,data-binding,knockout.js,Data Binding,Knockout.js,是否有方法从列表中某个项的回调内部访问根viewmodel 例如: function Employee() { var self = this; this.notes = ko.observableArray(); this.addNote = function() { // need to access the EmployeeViewModel here in order to set its detailedNote } } functi
function Employee() {
var self = this;
this.notes = ko.observableArray();
this.addNote = function() {
// need to access the EmployeeViewModel here in order to set its detailedNote
}
}
function EmployeeViewModel() {
var self = this;
this.employees= ko.observableArray([]);
// observables used as placeholders in modal windows
this.detailedEmployee = ko.observable();
this.detailedNote = ko.observable();
}
有$root,您可以将其传递到回调中,或者创建了解VM的员工,或者创建一个全局或存储库,或者在VM上没有注释,或者从捕获VM自身的视图模型将函数附加到员工……有$root,您可以将其传递到回调中,或者你创建了了解虚拟机的员工,或者你有一个全局或存储库,或者你没有虚拟机上的注释,或者从捕获虚拟机自身的视图模型将函数附加到员工…我假设在某个时刻,您将向视图模型中的员工可观察阵列添加员工实例。创建实例时,将parentVM传递给员工构造函数。唯一需要注意的是,您将无法调用ko.toJSON,因为当它试图字符串化对象时,它只会继续循环 我不得不做出一些推论,因为你没有提供很多细节,但我试着给你举个例子
另一方面,在创建多个对象实例时需要注意的一点是,将内部函数放入构造函数的原型中,这样就不会创建执行相同操作的函数的副本。例如,addNote函数将为您创建的每个Employee实例创建一次。如果使用原型继承,则只会创建一个原型继承。在我的示例中也有此更改。我假设在某个时候,您将向视图模型中的employees observableArray添加Employee实例。创建实例时,将parentVM传递给员工构造函数。唯一需要注意的是,您将无法调用ko.toJSON,因为当它试图字符串化对象时,它只会继续循环 我不得不做出一些推论,因为你没有提供很多细节,但我试着给你举个例子
另一方面,在创建多个对象实例时需要注意的一点是,将内部函数放入构造函数的原型中,这样就不会创建执行相同操作的函数的副本。例如,addNote函数将为您创建的每个Employee实例创建一次。如果使用原型继承,则只会创建一个原型继承。这个变化也在我的例子中。这就是我一直在寻找的答案。谢谢。这就是我想要的答案。谢谢