6

有没有办法在绑定属性更改时自动对可观察数组进行排序?我相信在下面的例子中,当我添加一个新人时,我的视图会更新,但是如果其中一个人的年龄发生了变化,我可以让视图刷新并应用我的排序功能吗?

person = {
   age: ko.observable();
}

viewModel = {

   people: ko.observableArray([]),

   someSortFunction: function() {
       this.people.sort(function(person1, person2) {
           return person2.age() - person1.age();
       });
    }
}

<div data-bind="foreach: people">
   <span data-bind="text: age"/>
</div>
4

1 回答 1

3

你可以订阅一个 observable 并在 observable 发生变化时采取行动:

person.age.subscribe(function (newValue) {
    viewModel.someSortFunction();
});
于 2012-06-22T07:40:14.440 回答