Knockout.js docs は次のように述べています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);
どうすればできますか?