Как вы фильтруете объект объектов с уникальными ключами в угловом ng-повторении?

0

Поэтому я пытаюсь выяснить, как финть объекта объектов в угловом ng-повторе.

Данные

$scope.data = {key1:value1, key2:value2, key3:value3};
$scope.filterStr = 'ey';

NG-Repeat

<div ng-repeat="(val, key) in data | filter:filterStr"></div>

Это явно не работает, так как фильтр ожидает массив, а не объект, но я хочу знать, как это сделать, не преобразовывая мои данные в массив.

Теги:
filter
angularjs-ng-repeat
ng-repeat

1 ответ

0
Лучший ответ

Я понял, мне нужно создать собственный фильтр. Код ниже работает отлично.

Пользовательский фильтр

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-Repeat

<div ng-repeat="(val, key) in data | objFilter:filterStr"></div>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню