AngularJSのフィルター述語によって返されるアイテムの長さ/数をどのように取得しますか?
Pawel Kozlowskiのおかげで、AngularJS GoogleGroupですばらしい答えを見つけることができました。
ng-repeat="item in filtered = (items | filter:filterExpr)"
filtered
リストをその場で作成します。現在のスコープ内の他の場所で、filtered.length
を使用してカウントを表示できます。
これを試して :
[〜#〜] 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)
また、フィルター処理された配列の長さを表示する必要があり、これは私のために機能しました:
{{ (items | filter:filterExpr).length }}
実際のところ、これは表示フィルターで機能します(orderBy
、limitTo
)
item in list = ( item_array|filter:some_str) | orderBy: pref | limitTo: nItemToDisplay
一度に5つのアイテムを表示する必要がある場合でも、list.lengthを使用できます。ページネーションまたはデータテーブルで役立ちます。