我有一个简单的例子来说明这一点。取一个简单地保存一组项目的 a 。每一行都有一个可观察的属性,在这种情况下是一个日期。ui 绑定到一组排序项,这只是一个计算的 observable。这个计算出的 observable 反过来正在监视一个计算出的 observable,它将过滤掉行。
为什么这不能按需要级联?
//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));