AngularJS - 在数组中使用多个更改参数进行过滤

时间:2014-09-24 04:17:45

标签: javascript angularjs

试图找出如何做到这一点。我想要实现的基本思路是这个

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

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

但是在我的情况下,我的过滤器参数存储在一个数组中,该数组将根据用户输入动态变化。我已经尝试了这个但是它在循环中返回时不会起作用。

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

$scope.myFilter = function (item) {
    for (index = 0; index < $scope.filterParams.length; ++index) {
        return item === $scope.filterParams[index];
    }
};

感谢帮助,谢谢!

2 个答案:

答案 0 :(得分:1)

试试这个:

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

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

答案 1 :(得分:1)

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

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