【发布时间】:2014-05-02 21:51:49
【问题描述】:
我正在尝试对 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 对象作为我的其他操作的目标,但我宁愿不这样做:)
编辑:我将对象复制为数组并对其进行循环,从而允许过滤。这解决了我的问题,但不是以我希望的方式。可能已经足够好了。
【问题讨论】:
-
是的,正如我所说,它可以用一个数组来完成,我只是想知道是否可以用一个对象。不过,谢谢。
-
github.com/angular/angular.js/blob/master/src/ng/filter/… 所以
filter只适用于数组。 -
@Konstantin Krass 你能分享一下怎么做吗?这不是开箱即用的。 Angular 文档清楚地表明过滤器接受数组docs.angularjs.org/api/ng/filter/filter
标签: javascript arrays json angularjs