2012-08-03 97 views
0

我在我的視圖模型中有一個可觀察數組。即使在推送附加物品後,是否可以始終訂購物品?保持收集訂購

例子:

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

顯示在地產a訂購的UI。所以[ { a: 1 }, { a: 2 }, { a: 4 } ]
然後我從服務器加載一些新項目 - [ { a: 5 }, { a: 3 } ],將它們推入數組中,並且數組仍然在UI上按順序顯示。是否有可能使用核心ko功能?
在此先感謝!

回答

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