example array javascript angularjs ng-repeat

javascript - array - Angular.js. Cómo contar iteraciones ng-repeat que satisfacen el filtro personalizado



ng-repeat group by (4)

A partir de Angular 1.3, puede usar la siguiente sintaxis para ng-repeat :

variable in expression as alias_expression

Es decir:

<p>Number of filtered items: {{filteredItems.length}}</p> <div ng-repeat="item in items | notEmpty as filteredItems"> ... </div>

Aquí está mi código:

<div ng-show="?" ng-repeat="item in items | notEmpty"> </div>

Filtrar:

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; }});

Necesito mostrar / ocultar las repeticiones según la cantidad de elementos filtrados en el ciclo. ¿Cuál es la mejor manera de hacerlo?

Gracias


La forma más fácil puede ser ejecutar el filtro en su controlador. Algo como esto:

function MyCtrl($scope, notEmptyFilter) { //$scope.items is put into the scope somehow $scope.filteredItems = notEmptyFilter($scope.items); }

Entonces tu HTML se vería así:

<div ng-show="filteredItems.length > 0" ng-repeat="item in filteredItems"> </div>



ng-repeat expresión ng-repeat permite asignar resultados filtrados a una variable. Se podrá acceder a esta variable desde el alcance actual para que pueda usarla en el mismo ámbito de cualquier forma que desee:

<p>Number of filtered items: {{filteredItems.length}}</p> <div ng-show="filteredItems.length > 0" ng-repeat="item in filteredItems = (items | notEmpty)" > {{$index}} </div>