是否可以使用AngularJS过滤嵌套列表并在返回过滤后的嵌套项目时计算数字?
目标是按read:true
过滤每个项目。
以下是数据:
guest = [
{"id":148,"guest":2,"user":1,"read":true},
{"id":147,"guest":2,"user":1,"read":false},
{"id":58,"guest":2,"user":1,"read":false}
]
此数组称为guest
,数组中的每个项目都是message
。
模板过滤器的语法是这样的吗?
{{ (for m in guest.messages | filter: m.read: true).length }}
这里的关键是不使用ng-repeat 。关于如何使用 ng-repeat 执行此操作有很多答案,但不能在单个语句中过滤嵌套列表。
这可能在template
中,或者可能唯一的方法是在controller
?
提前致谢
答案 0 :(得分:1)
从视图中的代码可读性角度来看,简单的自定义过滤器可能是最好的
app.filter('numRead', function(){
return function(guestArr){
return guestArr.filter(function(guest){
return guest.read;
}).length
}
});
用法:
Read count = {{guest| numRead}}