Подтвердить что ты не робот

Передать значение флажка angular ng-click

Есть ли способ передать директиву angular ng-click значение связанного ввода?

Другими словами, что должно заменить this.value следующим образом:

<input type="checkbox" id="cb1" ng-click="checkAll(this.value)" />

PS. Я не хочу, чтобы обходной путь чередовал значения, мне просто интересно, можно ли передать значение ввода в качестве аргумента функции angular.

4b9b3361

Ответ 1

Вы можете сделать следующее:

  • Используйте ng-model, если вы хотите связать компонент html с областью angular
  • Измените ng-click на ng-change
  • Если вам нужно привязать некоторое значение при проверке и снятии флажка, используйте ng-true-value="someValue" и ng-false-value="someValue"

Порядок выполнения ng-click и ng-model неоднозначен, поскольку они не определяют четких приоритетов. Вместо этого вы должны использовать ng-change или $watch на $scope, чтобы убедиться, что вы получили правильные значения от переменной модели.

Предоставлено musically_ut

Рабочий демонстрационный пример

<input type="checkbox" id="cb1" ng-model="check" ng-change="checkAll(check)" ng-true-value="YES" ng-false-value="NO"/> Citizen

Ответ 2

Присвоение ему ng-модели вернет логическое значение в зависимости от изменения к нему:

<input type="checkbox" id="cb1" ng-model="checkValue" ng-change="checkAll(checkValue)" />

Лучше использовать ng-change, а не ng-click

Ответ 3

Привяжите флажок к значению и передайте его на ng-click.

<input type="checkbox" ng-model="value" id="cb1" ng-click="checkAll(value)" />

Ответ 4

Сегодня я хотел сделать то же самое, и я вижу, что никто не ответил на реальный вопрос. Это противоречит философии Angular, но вы можете заменить "this.value" на "$ event.target.checked":

<input type="checkbox" id="cb1" ng-click="checkAll($event.target.checked)" />