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

4

10

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.

Has answered 16/12, 2014 at 14:39 Comment(0)
A
14

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/

Amygdalin answered 16/12, 2014 at 15:3 Comment(0)
M
5

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

Manchineel answered 16/12, 2014 at 15:55 Comment(0)
A
1

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>
Adamson answered 16/12, 2014 at 16:12 Comment(0)
A
1

It's very simple , just do this

<li ng-repeat="user in users | filter:user | filter : secondParam)">{{user.name}}</li>
Analysis answered 3/10, 2016 at 13:27 Comment(1)
I don't know why someone downvoted this, It's running perfectly. Do check it once.Analysis

© 2022 - 2024 — McMap. All rights reserved.