Angular 1.3 筛选具有数组属性的对象列表
Angular 1.3 filter list of objects with array attribute
希望有人能帮助我。
对于我在 angular 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-repeat:
<ul>
<li ng-repeat="item in myList | filter: {content: [{id:1}]}">
{{item}}
</li>
</ul>
当我使用 id:1、id:4 或 id:7 时它有效,但不适用于其他 ID...
有人有什么想法吗?
编辑
我终于找到了导致问题的原因,我使用的是 angular 1.3.0。升级到 1.3.11 后它工作了!!
您可以像这样基于嵌套属性进行过滤:
<li ng-repeat="item in myList | filter: {content: {id: '1'}}">
{{item}}
</li>
请务必注意,您将获得的 "object"(具有 ID X)将处于 item
级别。
希望有人能帮助我。 对于我在 angular 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-repeat:
<ul>
<li ng-repeat="item in myList | filter: {content: [{id:1}]}">
{{item}}
</li>
</ul>
当我使用 id:1、id:4 或 id:7 时它有效,但不适用于其他 ID...
有人有什么想法吗?
编辑
我终于找到了导致问题的原因,我使用的是 angular 1.3.0。升级到 1.3.11 后它工作了!!
您可以像这样基于嵌套属性进行过滤:
<li ng-repeat="item in myList | filter: {content: {id: '1'}}">
{{item}}
</li>
请务必注意,您将获得的 "object"(具有 ID X)将处于 item
级别。