由于 AngularJS 提供的过滤器仅适用于数组而不适用于对象,因此我使用了 this solution 中建议的过滤器函数.
现在我想扩展它,因为我的 json 数据还有一个设置对象存储过滤的可见性数据(不幸的是我不能修改 json 结构):
$scope.data = {
"groups":{
"1": {
"type": "foo",
"name": "blah",
"settings": {
"visibility":[true]
}
},
"2": {
"type": "bar",
"settings": {
"visibility":[false]
}
}
}
}
因此我的过滤器调用也更复杂,但目前当然不适用于过滤器:
<div ng-repeat="(key, value) in data.groups | objectByKeyValFilter:'settings.visible[0]':true>
{{key}} {{value.type}}
</div>
可能
objectByKeyValFilter:'settings.visibility[0]' : true
错误地变成那样
myObject['settings.visibility[0]']
如何修改过滤函数来实现过滤?
不工作 Plunker:http://plnkr.co/edit/f202lA?p=preview
最佳答案
像这样有点不同的方法怎么样:plnkr
<div ng-repeat="(key, value) in data.groups ">
<span ng-show="value.settings.visible">
{{key}} {{value.type}}
<span>
</div>
关于javascript - AngularJS:过滤 json 对象而不是数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24385435/