Javascript AngularJS-数组中具有多个变化参数的过滤

Javascript AngularJS-数组中具有多个变化参数的过滤,javascript,angularjs,Javascript,Angularjs,只是想弄清楚怎么做。我试图实现的基本理念是 <div ng-repeat="product in products | filter: myFilter"> $scope.myFilter = function (item) { return item === 'red' || item === 'blue'; }; $scope.myFilter=函数(项){ 退货项目=='red'| |项目=='blue'; }; 但是,在我的例子中,我的过滤器参数存储在一个

只是想弄清楚怎么做。我试图实现的基本理念是

<div ng-repeat="product in products | filter: myFilter">

$scope.myFilter = function (item) { 
    return item === 'red' || item === 'blue'; 
};

$scope.myFilter=函数(项){
退货项目=='red'| |项目=='blue';
};
但是,在我的例子中,我的过滤器参数存储在一个数组中,该数组将根据用户输入动态更改。我已经试过了,但它不起作用,因为我在循环中返回

var index;
$scope.filterParams = ['red', 'blue']

$scope.myFilter = function (item) {
    for (index = 0; index < $scope.filterParams.length; ++index) {
        return item === $scope.filterParams[index];
    }
};
var指数;
$scope.filterParams=['红色','蓝色']
$scope.myFilter=函数(项){
对于(索引=0;索引<$scope.filterParams.length;++index){
返回项==$scope.filterParams[索引];
}
};
感谢您的帮助,谢谢

试试这个:

app.filter('myFilter ', function() {
   $scope.filterParams = ['red', 'blue'];

   return function(item) {
      return  $scope.filterParams.indexOf(item) !== -1;
   });
});

问题是您将在第一次迭代时返回。您可以这样做:

$scope.myFilter = function(item) {
    return $scope.filterParams.indexOf(item) > -1;
};