Ангулярджс:Узнайте, как работает ngChecked
-
11-12-2019 - |
Вопрос
Я попытался изменить пример с ng-checked, чтобы нажатие на один из флажков автоматически обновляло другой.
Нажатие A, затем B, затем снова A — это не то, что я ожидаю.
Какую часть документации мне следует просмотреть, чтобы понять, что происходит?
Решение
Почему бы вам не подключить оба флажка к одной и той же модели?
<div ng-app>
A - Check me to check both:
<input type="checkbox" ng-model="master"><br/>
B - Check me to check both:
<input type="checkbox" ng-model="master">
</div>
http://jsfiddle.net/ev62U/133/
==================================================================================
Чтобы объяснить вашу скрипку:
ng-checked
не обновляет модель, а обновляет только представление (флажок) при изменении выражения.
Нажмите А:тот master
меняется на true
, флажок B следит за своим ng-checked
value и, следовательно, также обновляет проверяемое представление.
Нажмите Б:тот master2
меняется на false
, флажок A следит за своим ng-checked
value и, следовательно, обновляет представление, чтобы оно также не было отмечено.
Нажмите А:тот master
установлено на true
и это на самом деле не изменение, поскольку значение уже было true
, поэтому он не запускает обновление B.