it-swarm.com.de

Übergeben mehrerer Parameter in der Winkelfilterfunktion, nicht benutzerdefinierter Filter

Ich habe mich bemüht, viele ähnliche Fragen wie diese zu besuchen, konnte dieses Problem aber immer noch nicht lösen.

Ich möchte zusätzliche Parameter in der Winkelfilterfunktion übergeben. Ich habe die Lösung wie folgt gefunden, aber sie funktioniert nicht. Ich bekomme undefined für ein Objekt, das ich in ng-repeat verwendet habe.

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

Es gibt eine Lösung für den benutzerdefinierten Winkelfilter, die jedoch nicht mit der Winkelfilterfunktion arbeitet.

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

jsFiddle - Hier kannst du mein Problem sehen.

9
Jay Shukla

Werde versuchen: 

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

Aktualisierte Version http://jsfiddle.net/4PYZa/282/

14
user2700840

Je nach Fall können Sie anstelle des benutzerdefinierten Filters einen Prädikatsausdruck verwenden:

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

Schauen Sie sich diese Geige an: http://jsfiddle.net/ovym2tpr/28/

Sie können den benutzerdefinierten Filter in jedem Fall verwenden, er ist nur unter Nested ng-repeat nicht besonders gut.

4
shawnzhu

Wie rufe ich einen Angular.js-Filter mit mehreren Argumenten auf?

AngularJS: Benutzerdefinierte Filter und Wiederholungswiederholung

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

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

Aufruf aus Vorlage

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

Es ist sehr einfach, einfach das zu tun

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