私はdurundaljsを初めて使用します
ko.observablearrayをフィルタリングする方法を知りたい
define(['services / logger'、'data / data'、'functions / func']、function(logger、data、func){var vm = {list:ko.observableArray([])}; return vm;} );
リスト内のアイテムをフィルタリングしてテーブルに表示したい
ありがとう
私はdurundaljsを初めて使用します
ko.observablearrayをフィルタリングする方法を知りたい
define(['services / logger'、'data / data'、'functions / func']、function(logger、data、func){var vm = {list:ko.observableArray([])}; return vm;} );
リスト内のアイテムをフィルタリングしてテーブルに表示したい
ありがとう
Knockoutには、文書化されていないユーティリティ関数がありますが、配列のフィルタリングに役立つライブラリに存在します。
配列を処理するためのすべてのユーティリティメソッドの完全なリストは次のとおりです。
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
Ryan Niemeyerは、それらのいくつかの使用方法についてのすばらしいブログ投稿を書いています。
始めるための簡単な例を次に示します。
var newList = ko.utils.arrayFilter(list(), function(item) {
return item.price > 10;
});
これによりnewList
、価格が10を超えるアイテムが作成されます。次に、新しいリストを渡すことで、現在のリストを変更できます。
list(newList);
もう1つのオプションは、削除するアイテムを見つけることです。価格が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を参照することをお勧めします