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 d'afficher/masquer les répétitions s en fonction de la quantité d'éléments filtrés dans la boucle. Quelle est la meilleure façon de le faire?
Merci
ng-repeat
expression permet d'affecter des résultats filtrés à une variable. Cette variable sera accessible depuis la portée actuelle afin que vous puissiez l'utiliser dans la même portée quand 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>
Depuis 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>
Le moyen le plus simple consiste peut-être à 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 code 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 ng-repeat filtrées ,
qui décrit l'obtention du nombre après filtrage de la liste