2013-04-04 171 views
1

我有对象与对象数组中它的数组:AngularJS筛选嵌套对象

var content = [ 
    { 
    name: 'Foo', 
    sub: [{ name: 'Bar' }, { name: 'Foobar' }] 
    }, 
    ... 
] 

和模板:

<input ng-model="search" /> 

<div ng-repeat="item in content | filter:search> 
    {{item.name}} 
    <div ng-repeat="key in item"> 
     {{key.name}} 
    </div> 
</div> 

现在,我使用filter过滤器来搜索串匹配,但它仅适用于第一个ng-repeat指令。我怎么能包括第二个指令到搜索过滤器?提前致谢。

+0

您是否考虑过创建您自己的过滤器?你可以参考文档[这里](http://docs.angularjs.org/guide/dev_guide.templates.filters.creating_filters) – callmekatootie 2013-04-04 17:09:24

+0

谢谢,虽然 – Ozrix 2013-04-05 12:44:47

回答

0

好吧,我“扁平”的对象的简单集合传递之前,通过控制器到模板,所以我不必担心第二个周期。输出是

[{ name : 'foo' }, { name : 'bar' }, { name : 'foobar' }] 
0

可以将第二过滤器表达式简单地套用到这里的其他ng-repeat

<div ng-repeat="key in item | filter:secondFilterExpression">

见文档http://docs.angularjs.org/api/ng.filter:filter

+0

这会使一个单独的过滤器,这将是更耗时,所以这两条指令是彼此不知情的 – Ozrix 2013-04-05 10:11:36