web-dev-qa-db-ja.com

フィルタリングされたAngularJSのリスト内のアイテムの数

AngularJSのフィルター述語によって返されるアイテムの長さ/数をどのように取得しますか?

20
ocodo

Pawel Kozlowskiのおかげで、AngularJS GoogleGroupですばらしい答えを見つけることができました。

ng-repeat="item in filtered = (items | filter:filterExpr)"

filteredリストをその場で作成します。現在のスコープ内の他の場所で、filtered.lengthを使用してカウントを表示できます。

75
ocodo

解決

これを試して :

[〜#〜] html [〜#〜]

<span ng-bind="nb"></span>

Javascript

$scope.nb = $filter('filter')(items, filterExpr).length;

ドキュメンテーション

HTMLテンプレートバインディング内

{{ filter_expression | filter : array : expression : comparator}}

JavaScriptの場合

$filter('filter')(array, expression, comparator)
6
EpokK

また、フィルター処理された配列の長さを表示する必要があり、これは私のために機能しました:

{{ (items | filter:filterExpr).length }}
4
Marat

実際のところ、これは表示フィルターで機能します(orderBylimitTo

item in list = ( item_array|filter:some_str) | orderBy: pref | limitTo: nItemToDisplay

一度に5つのアイテムを表示する必要がある場合でも、list.lengthを使用できます。ページネーションまたはデータテーブルで役立ちます。