Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJS筛选器JSON对象{},它不是对象数组_Javascript_Arrays_Json_Angularjs - Fatal编程技术网

Javascript AngularJS筛选器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,

我试图对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>

{{key}}-{{val.name}-{{val.age}
在过去,我总是以对象数组的形式发送数据,事实上,如果我在这里这样做,它会起作用,但由于应用程序的性质,这是不可能的,因为我需要在代码的其他地方按名称(id)引用对象的属性

是否有任何方法可以将过滤器应用于类似于此的JSON对象

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


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

您可以将比较器功能放置在控制器中,如下图所示:


是的,正如我所说的,它可以用数组来完成,我只是想知道是否可以用对象来完成。不过谢谢你。所以
filter
只对数组有效。@Konstantin Krass你能分享一下怎么做吗?这不是开箱即用的。Angular docs清楚地表明过滤器接受数组我的模型不是数组。内置的$filter需要一个数组。我只是好奇,是否有一个解决方案可以使用一个对象。不是数组。{}vs.[]。