2017-03-13 2 views
1

Mein Filter soll Artikel im Objekt zurück, wenn Elemente des Objekts in einem Array existiert:Wie man Filter Angular JS repariert?

$scope.isCategory = function() { 
    return function(item) { 
     if($scope.filterObj.categories.length > 0) { 
      return angular.forEach($scope.filterObj.categories, function(value, key) { 
       return (item.categories.indexOf(value) == -1); 
      }); 
     } 
     return item; 
    } 
}; 

Wo $scope.filterObj ist [ "a", "b"] und item.categories ist [ "a"].

+0

es für Sie arbeiten? – lin

Antwort

1

Versuchen:

$scope.isCategory = function() { 
    return function(item) { 
     if($scope.filterObj.categories.length > 0) { 
      var found = false; 
      angular.forEach($scope.filterObj.categories, function(value, key) { 
       if (!found && item.categories.indexOf(value) !== -1) { 
        found = true; 
       } 
      }); 

      return found ? item : null; 
     } 
     return item; 
    } 
};