Mam prostą pętlę z ng-repeat
tym:
<li ng-repeat='task in tasks'>
<p> {{task.name}}
<button ng-click="removeTask({{task.id}})">remove</button>
</li>
W sterowniku jest funkcja $scope.removeTask(taskID)
.
O ile wiem, Angular najpierw renderuje widok i zastępuje interpolowany {{task.id}}
liczbą, a następnie, po zdarzeniu click, ocenia ng-click
ciąg znaków.
W tym przypadku ng-click
zostanie całkowicie, czego oczekuje, to znaczy: ng-click="removeTask(5)".
Jednak ... to nie robi nic.
Oczywiście mogę napisać kod do pobrania task.id
z $tasks
tablicy, a nawet DOM, ale nie wygląda to na Angular.
Jak więc dodać dynamiczną treść do ng-click
dyrektywy wewnątrz ng-repeat
pętli?
angularjs
ng-repeat
angularjs-ng-click
Paweł Szymański
źródło
źródło
ng-click
wyrażenie nie używa nawiasów, tj.ng-click="taskData.currentTaskId = task.id"
Jedną z rzeczy, które mnie naprawdę rozłączyły, było sprawdzenie kodu HTML w przeglądarce, zamiast rozwinięcia go do czegoś takiego:
Widziałem:
Jednak to drugie działa!
Wynika to z tego, że znajdujesz się w „Angular World”, gdy wewnątrz ng-click = "„ Angular wszystko gotowe wie o task.id, jak jesteś w jego modelu. Nie ma potrzeby używania powiązania danych, jak w {{}}.
Ponadto, jeśli chcesz przekazać sam obiekt zadania, możesz:
źródło
Warto również zauważyć, że dla osób, które znajdą to w swoich wyszukiwaniach, jest to ...
Zanotuj wartość
ng-click
. Przekazywany parametrgoTo()
jest łańcuchem z właściwości obiektu wiążącego (button
), ale nie jest zawijany w cudzysłów. Wygląda na to, że AngularJS obsługuje to dla nas. Rozłączyłem się przez kilka minut.źródło
to działa. dzięki. Wstrzykuję niestandardowy HTML i kompiluję go za pomocą kątowej w kontrolerze.
źródło
Powyższe odpowiedzi są doskonałe. Możesz spojrzeć na poniższy pełny kod, aby dokładnie wiedzieć, jak go używać
źródło
HTML:
Skrypt Java:
źródło
Oto powtórzenie ng z funkcją kliknięcia i dołączenie za pomocą suwaka
źródło