0
我是新來durundaljsDurandaljs:如何篩選ko.observablearray
我想知道如何才能篩選的ko.observablearray
定義([ '服務/記錄器',「數據/ data','functions/func'],函數(記錄器,數據,func)var vm = {0,1,2,3}
我要篩選的項目列表中,並在表中顯示它
感謝
我是新來durundaljsDurandaljs:如何篩選ko.observablearray
我想知道如何才能篩選的ko.observablearray
定義([ '服務/記錄器',「數據/ data','functions/func'],函數(記錄器,數據,func)var vm = {0,1,2,3}
我要篩選的項目列表中,並在表中顯示它
感謝
淘汰賽具有未記錄的實用功能,但它們的存在瓦特/庫,以幫助過濾陣列。
這裏是所有的工具方法處理陣列的完整列表:
ko.utils.arrayFilter
ko.utils.arrayFirst
ko.utils.arrayForEach
ko.utils.arrayIndexOf
ko.utils.arrayMap
ko.utils.arrayPushAll
ko.utils.arrayRemoveItem
ko.utils.compareArrays
ko.utils.unwrapObservable
和瑞安·尼邁耶寫了一個漂亮的blog post有關如何使用其中的幾個。
下面是一個簡單的例子,讓您開始:
var newList = ko.utils.arrayFilter(list(), function(item) {
return item.price > 10;
});
這將創建具有價格比10 然後你就可以改變你的當前項目的newList
通過它傳遞新列表:
list(newList);
另一種方法是找到要刪除的項目。說你要刪除與價格的所有項目超過10:
var rList = ko.utils.arrayFilter(list(), function(item) {
return item.price > 10;
});
接下來,您可以撥打:
list.removeAll(rList);
而且像他們說的有不止一個比喻皮膚貓的方式:
list.remove(function(item) { return item.price > 10 });
我相信還有更多的方法可以完成。如果您需要一些更高級的過濾陣列的方法,我建議您看看underscore.js