Knockout.js 文档说observableArray
简单地将一个对象放入 observableArray 并不能使该对象的所有属性本身都可观察。当然,如果您愿意,您可以使这些属性可观察,但这是一个独立的选择。
但它没有指定如何使属性可观察。
我有一个数组,users
我想让属性name
可观察,以便能够在某些操作下从另一个视图模型更改它。
这是我尝试过但没有成功的方法:
var shouter = new ko.subscribable();
function usersViewModel() {
var myData = [array of objects];
var self = this;
self.selectedRow = ko.observable();
self.items = ko.observableArray(myData);
self.selectedRow.subscribe(function (newValue) {
console.log(newValue);
shouter.notifySubscribers(newValue, "selectedRow");
});
}
function departmentViewModel() {
var self = this;
self.row = ko.observable();
//getting info from another view model
shouter.subscribe(function (user) {
self.row(user);
console.log(self.row());
self.row().name = ko.observable('Testing!!!');
}, this, "selectedRow");
}
var MasterViewModel = function () {
this.users = new usersViewModel();
this.department = new departmentViewModel();
}
var mm = new MasterViewModel();
ko.applyBindings(mm);
我怎么能做到?