为了论证,请采用以下(相当复杂的)JSON数据结构,并假设我无法更改它:
$scope.myObj = {
"DynamicKeyName": {...},
"AnotherKeyName": {...}
};
属性本身的值并不重要。是否可以根据属性名称过滤此对象?例如,我只想显示符合特定命名约定的属性。请注意,我不知道密钥名称,也不想将它们硬编码到应用程序中
有些事情:
<div ng-repeat="(key,val) in myObj | filterByKey:'something'"></div>
我相信我可能需要编写一个过滤器,但过滤器似乎适合使用数组。
答案 0 :(得分:1)
我不知道是否有内置过滤器,但您可以随时编写自己的过滤器。像这样:
app.filter("filterByKey",function(){
return function (input,filter){
var result = {};
for (var key in input){
if (key.indexOf(filter)>=0){
result[key] = input[key];
}
}
return result;
}
});