AngularJS过滤JSON对象{},它不是对象数组

时间:2014-05-02 21:51:49

标签: javascript arrays json angularjs

我正在尝试将过滤器应用于JSON对象而没有太多运气。

数据结构如下:

$scope.jsonObj = {
    someid8979: {
        name: "Bill",
        age: 18
    },
    someid987: {
        name: "Ted",
        age: 17
    }
}

在我的HTML中,类似这样的内容:

<input ng-model="search">
<div ng-repeat="(key,val) in jsonObj | filter:search">
    {{key}} - {{val.name}} - {{val.age}}
</div>

在过去,我总是将数据作为一个对象数组发送出去,事实上,如果我在这里做到这一点它会起作用,但由于应用程序的性质,这是不可能的,因为我需要在代码的其他地方按名称(id)引用对象的属性。

有没有办法将过滤器应用于类似于此的JSON对象?

我可以创建一个单独的数组,仅用于过滤目的,并将JSON对象作为其他操作的目标,但我宁愿不这样做:)

编辑:我将对象复制为数组并循环显示,允许过滤。这解决了我的问题,但不是我希望的方式。可能够好。

1 个答案:

答案 0 :(得分:0)

您可以将比较器功能放在控制器中,就像在这个探测器中一样:

http://plnkr.co/edit/n93RjIqLehVymmjjbTQd?p=preview