フィルタリングされたリストに要素が表示されていない場合にアラートを表示しようとしています。私はこれらのリストが本当に長くなるので、良いパフォーマンスのソリューションを探しています。AngularJSフィルタリングと制限リストの長さが同じかどうかを確認する方法
<div class="list_item" ng-repeat="item in $ctrl.list | filter: $ctrl.responsiveFilter | limitTo: 6 as results track by $index">
<label ng-click="$ctrl.handle_list_click()">
<input type="checkbox" ng-model="item.checked">
<div class="fake_label" >
{{item.name}}
</div>
</label>
</div>
<div class="list_item too_many"
ng-repeat-end
ng-if="results.length > 6">
<div class="fake_label">
{{results.length}} matches... Please, filter out.
</div>
</div>
しかし、結果は濾過しても制限された後の要素が含まれています。ここ
は、私が今から持っているものです。私がas results
をlimitTo
の直前に移動すると、ただ破損します。 限られたリストの長さと、フィルタリングされたリストの長さが異なる場合は、警告を示しています。私は検出したい
条件は、アラートが表示さだろう。
as results
の代わりに他のものを使用しても構いませんが、その状態を検出する方法があるかどうか疑問です。
編集:問題は、今私が必要とする量だけのフィルタの後ですが、限界の前にしながら、results.length
は、制限を適用した後に私の元素の量を与えることです。私はlimitTo
文を削除することによってこれを行う方法を知っているが、そのリストにあまりにも多くの結果がある...
これは非常に簡単な比較結果です。結果は.length-limit> 0です。さらに、 'ng-if =" results.length-limit "'です。ただハードコードの代わりにスコープ変数を使用してください – charlietfl
私はこの場合、変更を監視し、フィルタリングされたリストを自分で構築することをお勧めします。 - 例えば$ scopeCollection( 'list'、rf => filteredList = ...) –
'$ ctrl.list.length> results.length'のようなものはありますか? –