如何在 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>