Javascript AngularJS筛选器JSON对象{},它不是对象数组
我试图对JSON对象应用过滤器,但运气不好 数据结构如下所示:Javascript AngularJS筛选器JSON对象{},它不是对象数组,javascript,arrays,json,angularjs,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,
$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>
{{key}}-{{val.name}-{{val.age}
在过去,我总是以对象数组的形式发送数据,事实上,如果我在这里这样做,它会起作用,但由于应用程序的性质,这是不可能的,因为我需要在代码的其他地方按名称(id)引用对象的属性
是否有任何方法可以将过滤器应用于类似于此的JSON对象
我可以创建一个单独的数组用于过滤目的,并将JSON对象作为我的其他操作的目标,但我不希望:)
编辑:我将对象复制为数组,并在其上循环,这允许进行过滤。这解决了我的问题,但不是以我希望的方式。可能足够好了 您可以将比较器功能放置在控制器中,如下图所示:
是的,正如我所说的,它可以用数组来完成,我只是想知道是否可以用对象来完成。不过谢谢你。所以
filter
只对数组有效。@Konstantin Krass你能分享一下怎么做吗?这不是开箱即用的。Angular docs清楚地表明过滤器接受数组我的模型不是数组。内置的$filter需要一个数组。我只是好奇,是否有一个解决方案可以使用一个对象。不是数组。{}vs.[]。