javascript - AngularJS:过滤 json 对象而不是数组

原文 标签 javascript json angularjs

由于 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/

相关文章:

java - 提供 JSON InputStream 的最佳方式

c# - 仅更新 EF 实体上未设置为 null 的某些属性

javascript - 如何安全地将 HTML 从模型绑定(bind)到 View

javascript - VueJS 2 - 如何使用 $emit 传递参数

php - 如果开始时间和结束时间都相同,则时间选择器返回空值

javascript - MVC Javascript 按钮值不正确

javascript - 如何在选中复选框时打印其名称?

javascript - Codeigniter 和 Angular js 集成

javascript - 3 个 div 并排溢出

javascript - 响应式选择菜单-仅Java带有onChange