AngularJS-在一个数组中使用多个不断变化的参数进行过滤

AngularJS - Filtering with multiple changing parameters in an array

本文关键字:变化 参数 过滤 一个 AngularJS- 数组      更新时间:2023-09-26

只是想知道如何做到这一点。我试图实现的基本想法是这个

<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];
    }
};

非常感谢您的帮助,谢谢!

试试这个:

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;
};