有没有办法在绑定属性更改时自动对可观察数组进行排序?我相信以下示例,当我添加一个新人时,我的视图会更新,但如果其中一个人的年龄发生了变化,我是否可以刷新视图并应用我的排序功能?
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>
答案 0 :(得分:3)
您可以订阅一个observable并在可观察的更改时执行操作:
person.age.subscribe(function (newValue) {
viewModel.someSortFunction();
});