[英]Hide graphically some items iterating with ng-repeat
我正在使用Angular Js开发Web应用程序。 我想使用ng-repeat指令将div填充到我的html视图中。 ng-repeat使用的数组有一些重复项,但在我看来,我只想显示一次(如果元素已经显示,则其副本必须以图形方式隐藏)。 我怎样才能做到这一点?
<div ng-repeat="item in selectedProcedures track by $index">
<span>{{item.id}}</span>
</div>
只需使用像这样的独特过滤器:
<div ng-repeat="item in selectedProcedures track by $index | unique : 'id'">
<span>{{item.id}}</span>
</div>
然后创建唯一的过滤器:
app.filter('unique', function() {
return function(collection, property) {
var output = [];
angular.forEach(collection, function(item) {
//check if it exists in output on the basis of property, if not then add to output
output.push(item);
})
return output;
}
})
在示例中,函数中的“属性”为“ id”,而集合指的是整个数组。
我建议您不要隐藏生成的HTML,而是添加过滤器以删除重复项:
<div ng-repeat="item in selectedProcedures track by $index | deleteDuplicates">
. . .
</div>
angular.module('myApp').filter('deleteDuplicates', function(){
return function filterCore(source)
{
var out = [];
// . . .
return(out);
};
});
这是 AngularJS自定义过滤器教程。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.