Angularjs нг-отключен

У меня есть два входа для проверки электронной почты и пароля. Я вижу лица следующих работ:

myForm.$error.required

проверка формы ввода с требуемым значением ввода и

myForm.email.$valid

проверка моего регулярного выражения электронной почты

Если бы я должен был напечатать, т.е. {{ с приведенным выше кодом}}, я могу увидеть логический результат проверки как для ввода, так и для его правильного. Однако, когда я использую ng-disabled на кнопке с обоими выражениями, это не работает, но если я поставлю ng-disable только с одним выражением, я вижу, что оно работает, но я не могу разместить оба выражения, т.е.

<button type="submit" ng-disabled="myForm.$error.required && !myForm.email.$valid">Sign in</button>

В настоящее время результат становится истинным на основе первого выражения, но я думал, что && означает, что оба условия должны быть выполнены, чтобы результат был истинным? Может ли это быть потому, что выход истина + ложь = истина?


person hello world    schedule 10.03.2017    source источник
comment
попробуй это myForm.$error.required || !myForm.email.$valid   -  person El houcine bougarfaoui    schedule 10.03.2017
comment
Итак, вы хотите, чтобы кнопка была отключена, когда myForm содержит некоторую ошибку, связанную с обязательным полем, и в то же время email недействителен?   -  person lealceldeiro    schedule 10.03.2017
comment
отладьте оператор с помощью {{ myForm.$error.required && !myForm.email.$valid }}. разобрать, чтобы посмотреть, что происходит   -  person hannes neukermans    schedule 10.03.2017


Ответы (2)


true + false не означает true && false, это означает true || false,

вот почему вы не получаете правильное поведение, поэтому:

<button type="submit" ng-disabled="myForm.$error.required || !myForm.email.$valid">Sign in</button>
person El houcine bougarfaoui    schedule 10.03.2017

Вы должны использовать ng-disabled="myForm.$invalid", если хотите отключить кнопку, пока вся форма недействительна.

Если вы хотите отключить кнопку, если адрес электронной почты не указан или адрес электронной почты недействителен, вам следует использовать || вместо &&, поэтому кнопка будет отключена в обоих случаях.

person Abubakr A.Hafiz    schedule 10.03.2017
comment
Это больше комментарий, чем ответ. - person lealceldeiro; 10.03.2017
comment
Не совсем, это альтернатива желаемому вопросу, но все же отвечает на него. - person Sterling Archer; 10.03.2017