Angular.js。 如何计算满足自定义filter的ng-repeat迭代
这是我的代码:
<div ng-show="?" ng-repeat="item in items | notEmpty"> </div> 过滤:
 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; }}); 
我需要根据循环中过滤项目的数量显示/隐藏重复的s。 什么是最好的办法呢?
谢谢
  ng-repeatexpression式允许将过滤结果分配给variables。 这个variables可以从当前范围访问,所以你可以在任何你想要的范围内使用它: 
 <p>Number of filtered items: {{filteredItems.length}}</p> <div ng-show="filteredItems.length > 0" ng-repeat="item in filteredItems = (items | notEmpty)" > {{$index}} </div> 
最简单的方法可能是在控制器中运行filter。 像这样的东西:
 function MyCtrl($scope, notEmptyFilter) { //$scope.items is put into the scope somehow $scope.filteredItems = notEmptyFilter($scope.items); } 
那么你的HTML看起来像这样:
 <div ng-show="filteredItems.length > 0" ng-repeat="item in filteredItems"> </div> 
 从Angular 1.3开始,您可以使用以下语法来进行ng-repeat : 
 variable in expression as alias_expression 
那是:
 <p>Number of filtered items: {{filteredItems.length}}</p> <div ng-repeat="item in items | notEmpty as filteredItems"> ... </div> 
我find了这个
如何显示过滤后的重复数据的长度 ,
描述在过滤列表之后获得计数