我有一个以下json对象的数组:
{
fooBar:{
Id: 2
Foo: {
Id: 4
IsNew: false
}
Bar: {
Id: 1
IsNew: false
}
}
}
我希望对fooBar.Foo.Id
进行过滤,因此基于this answer我希望以下内容能够正常运行:
<div data-ng-repeat="fooBar in fooBars | filter:{Foo:{Id : 4}}:true">
但这并没有给我任何回报。
我可以执行以下操作来过滤fooBar.Id并且工作正常:
<div data-ng-repeat="fooBar in fooBars | filter:{Id : 2}:true">
我是否应该为这种级别的子属性匹配编写自定义过滤器?或者有什么明显的我做错了吗?
答案 0 :(得分:0)
基于this answer,我通过创建自定义过滤器来解决问题:
app.filter('fooBarFilter', [function () {
return function (foobars, fooId) {
var result = {};
angular.forEach(foobars, function (foobar, key) {
if (foobar.foo.Id === fooId) {
result[key] = foobar;
}
});
return result;
};
}]);
并用它来过滤HTML中的集合:
<div data-ng-repeat="(key, fooBar) in fooBars | fooBarFilter : 4">