Voici mon code:
<div ng-show="?" ng-repeat="item in items | notEmpty"> </div>
Filtre:
Kb.filter("notEmpty", function(){ return function(input){ var output=[]; for(var i=0;i<input.length;i++){ if(input[i]){ output.push(input[i]); } } return output; }});
J'ai besoin de montrer / cacher s répétés selon la quantité d'éléments filtrés dans la boucle. Quelle est la meilleure façon de le faire?
Merci
ng-repeat
expression ng-repeat
permet d'affecter les résultats filtrés à une variable. Cette variable sera accessible à partir de la portée actuelle afin que vous puissiez l'utiliser dans la même portée que vous le souhaitez:
<p>Number of filtered items: {{filteredItems.length}}</p> <div ng-show="filteredItems.length > 0" ng-repeat="item in filteredItems = (items | notEmpty)" > {{$index}} </div>
La manière la plus simple peut être d'exécuter le filtre dans votre contrôleur. Quelque chose comme ça:
function MyCtrl($scope, notEmptyFilter) { //$scope.items is put into the scope somehow $scope.filteredItems = notEmptyFilter($scope.items); }
Ensuite, votre HTML ressemblerait à ceci:
<div ng-show="filteredItems.length > 0" ng-repeat="item in filteredItems"> </div>
j'ai trouvé ça
Comment afficher la longueur des données filtrées ng-repeat ,
Qui décrit l'obtention du compte après avoir filtré la liste
A partir d'Angular 1.3, vous pouvez utiliser la syntaxe suivante pour ng-repeat
:
variable in expression as alias_expression
C'est:
<p>Number of filtered items: {{filteredItems.length}}</p> <div ng-repeat="item in items | notEmpty as filteredItems"> ... </div>