これを説明する簡単な例があります。単にアイテムの配列を保持するaを取ります。各行には、監視可能なプロパティ(この場合は日付)があります。uiは、ソートされたアイテムのセットにバインドされます。これは、計算されたオブザーバブルです。この計算されたオブザーバブルは、行をフィルターで除外する計算されたオブザーバブルを監視しています。
なぜこれが希望どおりにカスケードされないのですか?
//simple table model
var TableModel = function(){
var self = this;
self.items = ko.observableArray([
new TableRowModel(5),
new TableRowModel(2),
new TableRowModel(9),
new TableRowModel(7)
]);
self.filtered = ko.computed(function(){
return [self.items()[0], self.items()[1], self.items()[2]];
});
self.sortedItems = ko.computed(function(){
return _.sortBy(self.filtered(), function(item){
return item.value();
});
});
};
var TableRowModel = function(value){
var self = this;
self.value = ko.observable(new Date(2013, value, 1));
};
var model = new TableModel();
ko.applyBindings(model);
model.items.push(new TableRowModel(1));