Fyodor Khruschov Fyodor Khruschov - 6 months ago 164
AngularJS Question

Angular.js. How to count ng-repeat iterations which satisfy the custom filter

Here's my code:

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


Filter:

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


I need to show/hide repeated s according the quantity of filtered items in the loop.
What is the best way to do it?

Thanks

Answer

ng-repeat expression allows filtered results to be assigned to a variable. This variable will be accessible from current scope so you can use it in same scope anyway you want:

<p>Number of filtered items: {{filteredItems.length}}</p>

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