我有这样的用户
[{id:1,name:'name',parent_id:0,type:1},
{id:2,name:'name2',parent_id:0,type:2},
{id:3,name:"name1 child",parent_id:1,type:1}]
我试图根据parent_id和type id显示父母和子女用户,所以例如id 3是id 1的孩子,我试图像这样显示他们
http://jsfiddle.net/U3pVM/689/
感谢您的帮助
答案 0 :(得分:1)
我修理了你的小提琴:
<div ng-controller="MyCtrl">
<ol>
<li ng-repeat="user in users | filter:{parent_id:0}">
{{user.name}}
<ol>
<li ng-repeat="child in users | filter:{parent_id:user.id, type:user.type}">
{{child.name}}
</li>
</ol>
</li>
</ol>
</div>
你的主要问题是你试图使用带有函数的“过滤器”过滤器,这没关系,但是该函数不允许带任何参数。如果您确实需要创建一个带参数的过滤器,则必须编写自定义过滤器:http://docs.angularjs.org/guide/dev_guide.templates.filters.creating_filters。
但是在你的情况下,你可以使用标准的“过滤器”过滤器并传递它可以做你想要的对象。
另外,诅咒Angular开发人员创建一个名为filter的抽象,然后创建一个“过滤器”过滤器。我的意思是,这有多令人困惑?
答案 1 :(得分:0)
这不是使用过滤器的正确方法。如果您查看文档,则有三个选项:
如果您使用第三种情况
<li ng-repeat="child in users | filter:{parent_id: user.id, type: user.type}">
并打印孩子的姓名
{{ child.name }}
然后你会看到正确的结果。