自动将ko.observableArray排序为绑定属性更改

And*_*ard 6 knockout.js

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

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>
Run Code Online (Sandbox Code Playgroud)

Tua*_*uan 3

您可以订阅一个可观察量,并在该可观察量发生变化时采取行动:

person.age.subscribe(function (newValue) {
    viewModel.someSortFunction();
});
Run Code Online (Sandbox Code Playgroud)