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

オブザーバブルをサブスクライブして、そのオブザーバブルが変更されるたびにアクションを実行できます。

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