How to pass multiple parameter in angular filter function, not custom filter

青春壹個敷衍的年華 提交于 2019-12-12 08:28:35

问题


I tried hard and visit lot of similar question like this but still unable to solve this issue.

I want to pass extra parameter in angular filter function. I found solution as below but it's not working. I am getting undefined for object which I have used in ng-repeat.

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

There are solution for angular custom filter as below but that also not working with angular filter function.

<li ng-repeat="user in users | filter:isStatus:user:secondParam">{{user.name}}</li>

jsFiddle - You can see my problem here.


回答1:


Will try:

$scope.isStatus = function(secondParam, thirdParam){
      return function(user) {
           console.log(secondParam);
           console.log(thirdParam);
           return user.status == $scope.status;
     }

Updated version http://jsfiddle.net/4PYZa/282/




回答2:


According to your case, you can use predicate expression instead of custom filter:

<li ng-repeat="user in users | filter:{status: status, name: name}">{{user.name}}</li>

Take a look at this fiddle: http://jsfiddle.net/ovym2tpr/28/

You can use custom filter in anyway, it just performs not very well especially under nested ng-repeat




回答3:


How do I call an Angular.js filter with multiple arguments?

AngularJS : Custom filters and ng-repeat

 myApp.filter("isStatus ", function() { // register new filter
     return function(user, secondParam, thirdParam) { // filter arguments

       return user.status == $scope.status; // implementation
    };
 });

Calling from Template

<li ng-repeat="user in users | isStatus:secondParam">{{user.name}}</li>



回答4:


It's very simple , just do this

<li ng-repeat="user in users | filter:user | filter : secondParam)">{{user.name}}</li>


来源:https://stackoverflow.com/questions/27507114/how-to-pass-multiple-parameter-in-angular-filter-function-not-custom-filter

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!