我想将过滤器应用于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对象,但我宁愿不:)
编辑:我做了对象的副本作为阵列循环,这允许过滤。这解决了我的问题,但不是我希望的方式。可能够好。
http://stackoverflow.com/questions/13887504/filtering-on-object-map-rather-than- array-in-angularjs – PSL
是的,正如我所说的,它可以用一个数组来完成,我只是想知道是否可以用一个对象。谢谢,不过。 – Jazzy
https://github.com/angular/angular.js/blob/master/src/ng/filter/filter.js#L118所以'filter'只适用于数组。 – dfsq