我在下面有一个数组显示,
$ scope.selectionCat = [' 1',' 3',' 4']
在HTML中调用
< div dir-paginate ="项目中的项目| filterForCat:这">
自定义过滤器
.filter('filterForCat', function () {
return function (item, scope) {
return (scope.selectionCat.indexOf(item.category_id.id) !== -1);
};
})
当我试图阅读' scope.selectionCat'价值收到错误,如“无法读取属性' id'未定义'
我可以帮助解决这个问题吗?
答案 0 :(得分:1)
猜猜你想要过滤scope.selectionCat
包含id的项目,如@JB Nizet所评论,你不应该将范围(this)传递给你可以但应该<的过滤器strong>避免以这种方式使用过滤器,您必须返回过滤结果,而不仅仅是表达式的真/假。
同样,您所面临的错误将由Array.filter
解决,如果项目中没有数据,则Array.filter
的回调将不会被执行。
这里你可以像下面那样编写过滤器
.filter('filterForCat', function () {
return function (items, selectionVat) {
return items.filter(function(item) {
return selectionCat.indexOf(item.category_id.id) !== -1
});
};
})