Det ser ikke ut til å fungere å legge til parameter i ng-click-funksjonen i ng-repeat.
Jeg har en enkel løkke med ng-repeat
som dette:
<li ng-repeat='task in tasks'>
<p> {{task.name}}
<button ng-click="removeTask({{task.id}})">remove</button>
</li>
Det er en funksjon i kontrolleren $scope.removeTask(taskID)
.
Så vidt jeg vet vil Angular først gjengi visningen og erstatte interpolert {{task.id}}
med et tall, og deretter, ved klikkhendelse, evaluere ng-click
-strengen.
I dette tilfellet får ng-click
helt det som er forventet, dvs: ng-click="removeTask(5)".
Men... det' er ikke å gjøre noe.
Selvfølgelig kan jeg skrive en kode for å få task.id
fra $tasks
array eller til og med DOM, men dette virker ikke som Angular måte.
Så, hvordan kan man legge til dynamisk innhold til ng-klikk
direktiv inne i en ng-repeat
loop?
382
3
I stedet for
gjør dette:
Vennligst se denne fela:
http://jsfiddle.net/JSWorld/Hp4W7/34/
En ting som virkelig hengte meg opp, var da jeg inspiserte denne html-en i nettleseren, i stedet for å se den utvidet til noe sånt som:
så jeg
Sistnevnte fungerer imidlertid!
Dette er fordi du er i "Angular World", når du er inne i ng-click="" Angular all ready vet om task.id som du er inne i den "s modell. Det er ikke nødvendig å bruke databinding, som i {{}}.
Videre, hvis du ønsket å passere selve oppgaveobjektet, kan du like:
dette fungerer. takk. Jeg injiserer tilpasset html og kompilerer den ved hjelp av vinkel i kontrolleren.