保持收集订单

时间:2012-08-03 09:31:01

标签: knockout.js

我的视图模型中有一个可观察的数组。是否可以在推送其他物品后始终订购物品?

示例:

[ { a: 4 }, { a: 1 }, { a: 2 } ];

显示在按属性a订购的UI上。所以[ { a: 1 }, { a: 2 }, { a: 4 } ]
然后我从服务器加载一些新项目 - [ { a: 5 }, { a: 3 } ],将它们推入数组,并且仍然在UI上显示排序的数组。是否可以使用核心ko功能?
提前谢谢!

1 个答案:

答案 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);
});