私は多くのスレッドを読みましたが、2 つのオブザーバブル配列を計算し、それらの追加/削除を追跡し、計算されたオブザーバブルを更新する方法について十分な情報がありません。これは、それらに対して既に多くの変更が加えられているにもかかわらず、計算が一度だけ更新され、決して変更されないためです。 2。
その背後にあるコードは次のとおりです。
var VM = function () {
var self = this;
self.first = ko.observableArray([{
Id: 1,
name: "john"
}, {
Id: 3,
name: "steve"
}, {
Id: 5,
name: "roger"
}]);
self.second = ko.observableArray([{
Id: 2,
name: "laker"
}, {
Id: 4,
name: "don"
}, {
Id: 6,
name: "idiot"
}]);
self.both = ko.computed(function () {
return self.first().concat(self.second());
});
self.removePerson = function (v) {
(self.first().indexOf(v) !== -1) ? ko.utils.arrayRemoveItem(self.first(), self.first()[self.first().indexOf(v)]) : ((self.second().indexOf(v) !== -1) ? ko.utils.arrayRemoveItem(self.second(), self.second()[self.second().indexOf(v)]) : console.log("Item doesnt exist"));
}
}
ko.applyBindings(new VM());
質問
computed
またはを変更するたびに更新するにはどうすればよいですfirst
かsecond
?