2015-01-26 82 views
2

我希望有人能帮助我。 对于角1.3我目前的项目中,我使用这个列表:角度1.3过滤数组对象的列表属性

$scope.myList = [{ 
    id: "obj1", 
    content: [{ 
    id: 1, 
    name: 'attr 1' 
    }, { 
    id: 2, 
    name: 'attr 2' 
    }, { 
    id: 3, 
    name: 'attr 3' 
    }] 
}, { 
    id: "obj2", 
    content: [{ 
    id: 4, 
    name: 'attr 4' 
    }, { 
    id: 5, 
    name: 'attr 5' 
    }, { 
    id: 6, 
    name: 'attr 6' 
    }] 
}, { 
    id: "obj3", 
    content: [{ 
    id: 7, 
    name: 'attr 7' 
    }, { 
    id: 8, 
    name: 'attr 8' 
    }, { 
    id: 9, 
    name: 'attr 9' 
    }] 
}]; 

我想获得它具有内容数组中的ID X的对象。

我用这个NG-重复:

<ul> 
    <li ng-repeat="item in myList | filter: {content: [{id:1}]}"> 
    {{item}} 
    </li> 
</ul> 

当我使用ID:1,ID:4或ID:7它的工作原理,但不是为其他ID ...

有没有人有任何想法吗?

编辑

我终于找到了问题的根源,我采用了棱角分明1.3.0。升级到1.3.11后,它工作了!

回答

4

可以过滤基于嵌套属性,像这样:

<li ng-repeat="item in myList | filter: {content: {id: '1'}}"> 
    {{item}} 
</li> 

重要的是要注意的是,“对象”(具有ID X),你得到的将是在item水平是非常重要的。

+0

我试过你的建议,但它不工作,因为'内容'包含一个对象数组。如果对象的“内容”有一个属性“ID”,那么你完全正确... – user2246413 2015-01-27 20:46:23

+0

@ user2246413,适合你(稍作修改用于说明)的数据:http://plnkr.co/edit/katQANxYUVmWvu8yeltU?p =预览 – 2015-01-27 20:56:02

+0

@ user2246413,你有没有尝试过我如何在重击中展示? – 2015-02-01 23:17:15

相关问题