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-repeat
expression式允许将过滤结果分配给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了这个
如何显示过滤后的重复数据的长度 ,
描述在过滤列表之后获得计数