2012-10-13 14 views
10

Quando chiamo all'interno di un gruppo ng-repeatAngularJs ng clic evento attivato solo con argomenti letterali

<span ng-click="remove({{user.id}})">Delete</span>

il rimuovere funzione non chiamato

ma quando si sostituisce la espressione da un argomento letterale viene chiamato (funziona correttamente):

<span ng-click="remove(123)">Delete</span>

L'espressione '{{user.id}}' è valutata correttamente e ha solo valori interi.

Qualcuno ha un'idea di cosa sta succedendo? Lo stesso accade con i tag di ancoraggio (con href = "").

risposta

34

ng-click="remove(user.id)" dovrebbe funzionare, ng clic valutarlo contenuto in modo non c'è bisogno di interpolazione

+0

Oh ok, grazie. Ciò che mi ha irritato è che non è stata lanciata alcuna eccezione e il codice html sembrava assolutamente ok, perché l'espressione era stata valutata correttamente. – Sam

+1

Per essere più specifici, ngClick eseguirà qualsiasi stringa all'interno delle virgolette tramite $ eval(). Ulteriori informazioni possono essere trovate qui: http://docs.angularjs.org/api/ng.$rootScope.Scope#$eval –

6

Si consiglia di non utilizzare le parentesi graffe nelle espressioni ng clic. Prova a modificare:

<span ng-click="remove(user.id)">Delete</span> 

Ed essere sicuri di controllare la documentazione AngularJS espressioni: http://docs.angularjs.org/guide/expression

+1

+1 per il collegamento di espressioni. grazie mille – rjha94

Problemi correlati