我在将foreach绑定与排序结合时遇到了麻烦。我有一个列表像这样绑定:
<article data-bind="foreach: widgets">
Widgets是一个简单的可观察数组:
var widgets= ko.observableArray();
这个很好用,可以给我列出我的“小部件”清单。如果我添加新的“小部件”,则通过数据绑定会动态地出现在清单中。
但是,一旦我对数组添加排序功能:
<article data-bind="foreach: widgets.sort(function (left, right) { return left.order() == right.order() ? 0 : (left.order() < right.order() ? -1 : 1); })">
新添加的小部件不再出现在我的列表中 - 除非我重新加载页面。(此时排序运作得很好 - 如果我更新正在排序的“顺序”字段,则列表中的项目会动态重新排序)。
我该如何让排序与可观察数组中新项目的动态更新良好地协同工作?
为了检索我的数据,我使用Breezejs,但我不认为它会影响到这种情况。