嵌套属性上的Angularjs筛选器

嵌套属性上的Angularjs筛选器,angularjs,angularjs-ng-repeat,angularjs-filter,Angularjs,Angularjs Ng Repeat,Angularjs Filter,我有一个包含以下json对象的数组: { fooBar:{ Id: 2 Foo: { Id: 4 IsNew: false } Bar: { Id: 1 IsNew: false } } } 我想在fooBar.Fo

我有一个包含以下json对象的数组:

 { 
    fooBar:{ 
        Id: 2
        Foo:  { 
                Id: 4
                IsNew: false
              } 
         Bar: { 
                Id: 1
                IsNew: false
              }
           }
  }
我想在fooBar.Foo.Id上进行筛选,因此基于此,我希望以下方法能够起作用:

<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">
我应该为这种一级向下的子属性匹配编写自定义筛选器吗?或者有什么明显的错误吗?

基于,我通过创建一个自定义过滤器解决了这个问题:

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">

你能发一张纸条或一把小提琴吗?并复制该问题?您是否看到您提到的问题上更新的JS Bin。他们最终也找到了另一个解决方案。