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>
encontré esto
Cómo mostrar la longitud de los datos ng-repeat filtrados
que describe para obtener el conteo después de filtrar la lista
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>