ngRepeat按深属性过滤

Exc*_*Cat 52 javascript json filter angularjs angularjs-ng-repeat

如果我有一个带有对象作为属性值的复杂对象,如何通过其中一个嵌套属性进行过滤?

可以使用OOB ng-repeat过滤器完成吗?

数据

{
  Name: 'John Smith',
  Manager: {
     id: 123,
     Name: 'Bill Lumburg'
  }
}
Run Code Online (Sandbox Code Playgroud)

ngRepeat

<li ng-repeat="e in emps | filter:Manager.Name">{{ e.Name }}</li>
Run Code Online (Sandbox Code Playgroud)

小智 112

您需要传递参数以过滤:

<input ng-model="filter.key">
<ul>
  <li ng-repeat="e in list | filter: {Manager: {Name: filter.key}}">
    {{e.Name}}  (Manager: {{e.Manager.Name}})
  </li>
</ul>
Run Code Online (Sandbox Code Playgroud)

关于Plunker的例子

  • 如果某些对象没有管理器属性,即使过滤器为空,它们也不会出现.你知道一种方法来包括它们吗? (2认同)