web-dev-qa-db-fra.com

Nombre d'éléments dans une liste filtrée AngularJS

Comment obtenez-vous la longueur/le nombre d'éléments renvoyés par un prédicat de filtre dans AngularJS?

20
ocodo

J'ai réussi à trouver une excellente réponse sur le groupe Google AngularJS, grâce à Pawel Kozlowski.

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

Pour créer la liste filtered à la volée, vous pouvez utiliser filtered.length n'importe où dans l'étendue actuelle pour afficher le nombre.

75
ocodo

Solution

Essaye ça :

HTML

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

Javascript

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

Documentation

En HTML Template Binding

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

En JavaScript

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

je devais également afficher la longueur d'un tableau filtré et celui-ci fonctionnait pour moi:

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

En fait, cela fonctionnera avec le filtre d'affichage (orderBy, limitTo)

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

si vous devez afficher 5 éléments à la fois, vous pouvez toujours utiliser list.length. Utile pour la pagination ou en datable.