2015-11-06 2 views
1

У меня есть следующие кнопки радио:AngularJS: не ngChecked работает

<input type="radio" ng-value="option.text" ng-model="selected.value" name="option" ng-checked="poll_post.poll_option_id == option.id"> 

Я дважды проверил poll_post.poll_option_id и option.id равны. Таким образом, выражение внутри ng-checked оценивается как true. Но в этом случае опция не проверяется. Что я делаю не так?

+0

пожалуйста добавьте plunker или что-то, чтобы мы могли увидеть весь – Raulucco

+0

я добавлю, что, но какой-то шанс, что я делаю что-то неправильно, что очевидно? –

+0

Я думаю, что ваше выражение не правильно .... code plz –

ответ

1

Вы не должны использовать ngModel и ngChecked вместе.
ngChecked является односторонней привязкой, то есть он будет проверять только значение выражения и задавать ввод соответствующим образом, но если вы измените значение ввода, он не передаст значение переменной, к которой он привязан.
С другой стороны, ngModel проверит значение переменной, к которой она привязана, и установит значение переменной, если вход изменится.
Преимущество ngChecked over ngModel заключается в том, что вы можете использовать выражение вместо переменной.

Тем не менее, если оба присутствуют ngModel «побеждает» над ngChecked (ngChecked имеет приоритет 100, а ngModel имеет приоритет 1, поиск «приоритет» здесь: https://docs.angularjs.org/api/ng/service/ $ компиляции) и изменение выражения ngChecked не будут переданы переменная ngModel связана с

вы можете видеть в этом Plunker, что даже если Val1 имеет checked="true" переменную $scope.selected устанавливается в Val2 так нг-модель покоряет нг проверил http://plnkr.co/edit/nae3b46KNzFKVTqEQPG3?p=preview

Если вы хотите программно изменить статус флажка Вы должны отредактировать переменную, с которой вы связали вас r ng-model to или удалить ng-model и оставить только ng-checked (это зависит от того, что вы делаете).

Для получения дополнительной информации:
AngularJS: ng-model not binding to ng-checked for checkboxes
https://docs.angularjs.org/api/ng/directive/ngChecked

+0

Большое спасибо за очищение! –

+0

Добро пожаловать – valepu

Смежные вопросы