Как сделать ввод отключенным по умолчанию с помощью угловых директив

Как сделать текстовое поле ввода отключенным по умолчанию и включить его с помощью флажка. Я получаю флажок, чтобы переключать поле ввода между включенным и отключенным состоянием, но я не могу сделать так, чтобы поле ввода было отключено по умолчанию, даже если я установил флажок в true при загрузке страницы.

Я попробовал этот метод, но он не отключает поле ввода до тех пор, пока я не включу и не выключу этот флажок:

<input type="text" ng-disabled="restaurant.valid_shortname" ng-model="restaurant.shortname" >
<input type="checkbox" ng-model="restaurant.valid_shortname" ng-checked="true"/>

Что я хотел бы сделать, это установить флажок при загрузке страницы, что в результате приводит к отключению поля ввода

1 ответ

Решение

Из документов ng-checked:

Обратите внимание, что эта директива не должна использоваться вместе с ngModel, так как это может привести к неожиданному поведению.

Правильный способ, вероятно, будет установить restaurant.valid_shortname истина внутри вашего контроллера. Вы могли бы использовать ng-init а также, если вы настаиваете на том, чтобы сделать это в вашем шаблоне. Это будет выглядеть примерно так:

<input ng-init="restaurant.valid_shortname = true" type="text"
       ng-disabled="restaurant.valid_shortname"
       ng-model="restaurant.shortname" >
<input type="checkbox" ng-model="restaurant.valid_shortname"/>
Другие вопросы по тегам