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/

相关文章:

angularjs - 有没有办法在不改变路线的情况下向我已经构建的 Rails 应用程序添加 Angular ?

javascript - Knockoutjs 函数更新模型时出现预期异常

javascript替换没有类的p标签的div标签

javascript - Meteor Router 数据函数被调用两次

xml - 将 xml 转换为 json 以将文件处理为 Bigquery

javascript - 如果 angularjs 中的值为 true,则绘制打开关闭标签

javascript - 使用 mongoose 查询 mongodb 中集合的命名文本索引

java - Spring Boot尝试使用@JsonTest注释在测试中创建mongo存储库

javascript - 从 JSON 创建对象数组

javascript - Geonames JSONP 结果未显示在下拉列表中