2016-10-18 4 views
1

У меня простая форма с <select> и <input text>; мне нужно отключить входной текст, если значение параметра равно true. Это мой код:Угловой входной текст запрещен по выбору

<div class="form-group"> 
    <label for="auth">{{ 'SETTINGS.SYSTEM.NET.WIFI.AUTH.LABEL' | translate }}</label> 
    <select name="auth" class="form-control" ng-model="wifi.securitytype"> 
     <option value="true">{{ 'SETTINGS.SYSTEM.NET.WIFI.AUTH.NONE' | translate }}</option> 
     <option value="false">{{ 'SETTINGS.SYSTEM.NET.WIFI.AUTH.WEP' | translate }}</option> 
     <option value="false">{{ 'SETTINGS.SYSTEM.NET.WIFI.AUTH.WPA2' | translate }}</option> 
    </select> 
</div> 


<fieldset ng-disabled="wifi.securitytype"> 
    <div class="form-group" ng-class="{'has-error':wifiForm.password.$invalid && !wifi.securitytype}"> 
     <label for="password">{{ 'SETTINGS.SYSTEM.NET.WIFI.PASSWORD' | translate }}</label> 
     <input class="form-control" name="password" placeholder="{{ 'SETTINGS.SYSTEM.NET.WIFI.PASSWORD_PLACEHOLDER' | translate }}" ng-model="wifi.wpakey" ng-pattern='/^(?!\s*$).+/' ng-model-options="{ updateOn: 'blur' }"> 
     <span class="help-block ng-hide" ng-show="wifiForm.password.$invalid && !wifi.securitytype">RICHIESTA PASSWORD DI RETE</span> 
    </div> 
</fieldset> 

Проблема заключается в том, что <fieldset> когда-либо отключен. Где моя вина?

ответ

2

Я думаю, вы ожидаете, что значения параметра будут иметь тип boolean. Но HTML атрибуты всегда строки, поэтому вы должны оценить их в обоих случаях, «истина» или «ложь», как указано here

Попробуйте заменить нг-инвалида состояние с

<fieldset ng-disabled="'true' === wifi.securitytype"> 
+0

это работает .. Большое спасибо – ilGiudice

0

wifi.securitytype вернет 'true' или 'false', которые не являются пустыми строками и правдивыми в соответствии с javascript, поэтому ваш ng-disabled всегда оценивает true. вы можете сделать так, как предложила @Eirini.

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

  • Нет связанных вопросов^_^