我的视图模型中有一个可观察的数组。是否可以在推送其他物品后始终订购物品?
示例:
[ { a: 4 }, { a: 1 }, { a: 2 } ];
显示在按属性a
订购的UI上。所以[ { a: 1 }, { a: 2 }, { a: 4 } ]
。
然后我从服务器加载一些新项目 - [ { a: 5 }, { a: 3 } ]
,将它们推入数组,并且仍然在UI上显示排序的数组。是否可以使用核心ko功能?
提前谢谢!
答案 0 :(得分:1)
每次在数组中推送数据时,您都可以调用.sort()
方法 - 您不能将它们直接插入数组的中间(请参阅documentation)。
在您的情况下,您可以执行以下操作:
// Todo: insert (push) all inside the observableArray when you retrieved it from the server
// Now sort the data
observableArray.sort(function (left, right) {
return left.a == right.a ? 0 : (left.a < right.a ? -1 : 1);
});