Невозможно вызвать isEqualToString со списком аргументов типа '(String)' (из замыкания)

Чтобы фильтровать один тип, вы можете:

Чтобы фильтровать массив, вам не нужен полностью настраиваемый фильтр, но я бы использовал фильтр предикатов, который вы можете передать Угловой фильтр. Вот фильтр, предполагающий ваш массив type:

$scope.filterArray = function(hash) {
    return ($scope.types.indexOf(hash.type) !== -1);
};

Используется следующим образом:

демонстрационный скрипт обоих

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

Для создания полностью настраиваемого фильтра это работает:

filter('inArray', function() {
    return function inArray( haystack , needle ) {
        var result = [];
        var item,i;
        for (i=0; i< haystack.length;i++) {
            item = haystack[i];
            if (needle.indexOf(item.type) !== -1)
              result.push(item);
        };
        return (result);
    };
});

Используется следующим образом:

demo пользовательского фильтра

0
задан roberto tomás 16 January 2019 в 20:12
поделиться