У меня есть простой цикл с ng-repeat
таким:
<li ng-repeat='task in tasks'>
<p> {{task.name}}
<button ng-click="removeTask({{task.id}})">remove</button>
</li>
В контроллере есть функция $scope.removeTask(taskID)
.
Насколько я знаю, Angular сначала визуализирует представление и заменяет интерполированное {{task.id}}
число, а затем, при событии щелчка, оценивает ng-click
строку.
В этом случае ng-click
получает полностью то, что ожидается, то есть: ng-click="removeTask(5)".
однако ... он ничего не делает.
Конечно, я могу написать код для получения task.id
из $tasks
массива или даже из DOM, но это не похоже на Angular.
Итак, как можно добавить динамический контент в ng-click
директиву внутри ng-repeat
цикла?
angularjs
ng-repeat
angularjs-ng-click
Павел Шиманский
источник
источник
ng-click
выражение не использует скобки, то естьng-click="taskData.currentTaskId = task.id"
Одна вещь, которая действительно повесила меня, была, когда я проверял этот html в браузере, вместо того, чтобы видеть, что он расширился до чего-то вроде
Я видел:
Однако последний работает!
Это потому, что вы находитесь в "Angular World", когда внутри ng-click = "" Angular все готово знает о task.id, поскольку вы находитесь внутри его модели. Нет необходимости использовать привязку данных, как в {{}}.
Далее, если вы хотите передать сам объект задачи, вам может понравиться:
источник
Также стоит отметить, для людей, которые находят это в своих поисках, это ...
Обратите внимание на стоимость
ng-click
. Переданный параметрgoTo()
является строкой из свойства объекта привязки (thebutton
), но он не заключен в кавычки. Похоже, AngularJS справится с этим для нас. Я зациклился на этом на несколько минут.источник
это работает. Спасибо. Я вводить пользовательский HTML и компилировать его с помощью угловых в контроллере.
источник
Выше ответы отличные. Вы можете посмотреть на следующий пример полного кода, чтобы точно знать, как использовать
источник
HTML:
Java Script:
источник
Вот повторение ng с функцией щелчка ng и добавление с помощью ползунка
источник