の itemnames のリストに対して簡単な<input>
検索フィルタを設定しましたAngularJS
。
私のリストは次のようになります。
var uniqueLists = {
category1: ['item1', 'item2', 'item3' ... 'item180' ], // Real list contains ~180 items
category2: ['itemA', 'itemB', 'itemC' ... 'itemZZZ' ], // Real list contains ~1080 items
category3: ['otheritem1', 'otheritem2', 'otheritem3' ] // Real list contains 6 items
}
このリストを Angular で繰り返し処理し、結果を<ul>
カテゴリごとに出力します。
<div ng-repeat="(key,val) in uniqueLists">
<form ng-model="uniqueLists[index][0]">
<input ng-model="searchFilter" type="text" />
<ul>
<li ng-repeat="value in val | filter: searchFilter">
<label>
<input type="checkbox" ng-model="selectedData[key][value]" />
{{value}}
</label>
</li>
</ul>
</form>
</div>
わかりやすくするために、selectedData は次のようになります。
var selectedData = {category1: [item1:true], category2: [], category3: []); // if 'item1's checkbox is checked.
このリストは問題なく動作filter
していますが、非常に高速なコンピューターでも非常に遅れています。入力に文字を入力すると、リストが更新されるまでに 1 ~ 2 秒かかります。
これは、一度に約 1000 個のアイテムをフィルタリングしているためである可能性が高いことは承知していますが、他の場所でこれについての議論を見たことがありません.
フィルターのパフォーマンスを向上させる方法はありますか?