如何在角度过滤功能中传递多个参数,而不是自定义过滤器

Jay*_*kla 9 angularjs ng-repeat angularjs-ng-repeat angular-filters

我努力尝试并访问了许多类似这样的问题,但仍然无法解决这个问题.

我想在角度过滤器功能中传递额外的参数.我发现解决方案如下,但它不起作用.我正在使用我所使用的对象的未定义ng-repeat.

<li ng-repeat="user in users | filter:isStatus(user,secondParam)">{{user.name}}</li>
Run Code Online (Sandbox Code Playgroud)

角度自定义滤波器的解决方案如下所示,但也不适用于角度滤波器功能.

<li ng-repeat="user in users | filter:isStatus:user:secondParam">{{user.name}}</li>
Run Code Online (Sandbox Code Playgroud)

jsFiddle - 你可以在这里看到我的问题.

小智 14

会尝试:

$scope.isStatus = function(secondParam, thirdParam){
      return function(user) {
           console.log(secondParam);
           console.log(thirdParam);
           return user.status == $scope.status;
     }
Run Code Online (Sandbox Code Playgroud)

更新版本http://jsfiddle.net/4PYZa/282/


sha*_*zhu 5

根据您的情况,您可以使用谓词表达式而不是自定义过滤器:

<li ng-repeat="user in users | filter:{status: status, name: name}">{{user.name}}</li>
Run Code Online (Sandbox Code Playgroud)

看看这个小提琴:http : //jsfiddle.net/ovym2tpr/28/

无论如何您都可以使用自定义过滤器,它的性能不是很好,尤其是在嵌套下 ng-repeat