如何在 angular ng-repeat 中过滤具有唯一键的对象的对象?
How do you filter an object of objects with unique keys in an angular ng-repeat?
所以我想弄清楚如何在 angular ng-repeat 中找到对象的对象。
数据
$scope.data = {key1:value1, key2:value2, key3:value3};
$scope.filterStr = 'ey';
NG-重复
<div ng-repeat="(val, key) in data | filter:filterStr"></div>
这显然不起作用,因为过滤器需要一个数组而不是一个对象,但我想知道如何在不将我的数据转换为数组的情况下执行此操作。
我明白了,我需要创建一个自定义过滤器。下面的代码效果很好。
自定义过滤器
angular.module('ui.global')
.filter('objFilter', function () {
return function (obj, param) {
var newObj = {};
if(param){
for(var key in obj){
if(key.toLowerCase().includes(param.toLowerCase())){
newObj[key] = obj[key];
}
}
} else {
newObj = obj;
}
return newObj;
};
});
数据
$scope.data = {key1:value1, key2:value2, key3:value3};
$scope.filterStr = 'ey';
NG-重复
<div ng-repeat="(val, key) in data | objFilter:filterStr"></div>
所以我想弄清楚如何在 angular ng-repeat 中找到对象的对象。
数据
$scope.data = {key1:value1, key2:value2, key3:value3};
$scope.filterStr = 'ey';
NG-重复
<div ng-repeat="(val, key) in data | filter:filterStr"></div>
这显然不起作用,因为过滤器需要一个数组而不是一个对象,但我想知道如何在不将我的数据转换为数组的情况下执行此操作。
我明白了,我需要创建一个自定义过滤器。下面的代码效果很好。
自定义过滤器
angular.module('ui.global')
.filter('objFilter', function () {
return function (obj, param) {
var newObj = {};
if(param){
for(var key in obj){
if(key.toLowerCase().includes(param.toLowerCase())){
newObj[key] = obj[key];
}
}
} else {
newObj = obj;
}
return newObj;
};
});
数据
$scope.data = {key1:value1, key2:value2, key3:value3};
$scope.filterStr = 'ey';
NG-重复
<div ng-repeat="(val, key) in data | objFilter:filterStr"></div>