Передать значение флажка angular ng-click
Есть ли способ передать директиву angular ng-click значение связанного ввода?
Другими словами, что должно заменить this.value
следующим образом:
<input type="checkbox" id="cb1" ng-click="checkAll(this.value)" />
PS. Я не хочу, чтобы обходной путь чередовал значения, мне просто интересно, можно ли передать значение ввода в качестве аргумента функции angular.
Ответы
Ответ 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)" />