8

Ich versuchte hart und besuchen viele ähnliche Frage wie folgt, aber immer noch nicht in der Lage, dieses Problem zu lösen.Wie mehrere Parameter in angular Filterfunktion übergeben werden, nicht benutzerdefinierten Filter

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

Es gibt eine Lösung für eckige benutzerdefinierte Filter wie unten, aber das funktioniert auch nicht mit Winkelfilterfunktion.

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

jsFiddle - Sie können mein Problem hier sehen.

Antwort

14

Wird 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/

4

Nach Ihrem Fall können Sie Prädikat Ausdruck Filter anstelle von benutzerdefinierten verwenden:

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

an dieser Geige Werfen Sie einen Blick: http://jsfiddle.net/ovym2tpr/28/

Sie können custo verwenden m-Filter in wie auch immer, es führt nicht nur sehr gut, vor allem unter verschachtelten ng-repeat

1

Es ist sehr einfach, tun gerade diese

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

Ich weiß nicht, wieso jemand das abgelehnt hat, es läuft perfekt. Überprüfen Sie es einmal. –

Verwandte Themen