2014-12-16 14 views
8

Ho provato a fare molte domande simili, ma non sono ancora riuscito a risolvere questo problema.Come passare più parametri nella funzione di filtro angolare, non nel filtro personalizzato

Desidero passare parametri aggiuntivi nella funzione del filtro angolare. Ho trovato la soluzione come sotto ma non funziona. Sto diventando indefinito per oggetto che ho usato in ng-repeat.

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

Ci sono soluzioni per filtro angolare personalizzato come sotto ma che non funzionano anche con funzione filtro angolare.

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

jsFiddle - È possibile vedere il mio problema qui.

risposta

14

tenterà:

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

Versione aggiornata http://jsfiddle.net/4PYZa/282/

4

Secondo il vostro caso, è possibile usare l'espressione del predicato invece del filtro personalizzato:

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

Date un'occhiata a questo violino: http://jsfiddle.net/ovym2tpr/28/

È possibile utilizzare custo m filtro in ogni caso, semplicemente non funziona molto bene soprattutto sotto nidificato ng-repeat

1

E 'molto semplice, basta fare questo

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

Non so perché qualcuno ha downvoted questo, sta funzionando perfettamente. Controllalo una volta. –