У меня есть простой пример, чтобы проиллюстрировать это. Возьмите a, который просто содержит массив элементов. Каждая строка имеет наблюдаемое свойство, в данном случае дату. Пользовательский интерфейс привязан к набору отсортированных элементов, который является просто вычисляемым наблюдаемым. Эта вычисляемая наблюдаемая, в свою очередь, наблюдает за вычисляемой наблюдаемой, которая будет отфильтровывать строки.
Почему это не каскадно, как хотелось бы?
//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));