Угловой материал - применение класса ошибок задерживается, если вручную установить ошибку на входе

У меня есть ввод имени пользователя, и у меня есть пользовательское сообщение об ошибке «Имя пользователя уже занято» через ng-messages. Мне удалось вручную добавить и показать сообщение об ошибке, но проблема в том, что «класс ошибки» (или что-то, что превращает ввод углового материала в красный цвет при ошибке) является своего рода «отложенным» . Я устанавливаю ошибку, затем отображается сообщение об ошибке, но класс ошибок не применяется. Я изменил значение имени пользователя (это установит для ошибки значение false на основе моей пользовательской функции), после чего сообщение об ошибке исчезнет, ​​но класс ошибок будет применен только в этот раз.

Чтобы показать вам, в чем моя проблема, вот plunkr

--ИЗМЕНИТЬ--

Кто-то дал мне идею, и мне просто нужно вручную установить класс ошибок на входе, но по-своему, как у углового материала. Просто поместите md-is-error в md-input-container, а также вручную установите допустимость ввода в контроллере.

<md-input-container md-is-error="sampleForm.userName.$invalid">

Вот обновленный plunkr


person boi_echos    schedule 16.06.2016    source источник
comment
Я не понимаю вашей проблемы. Ваш plunkr работает нормально?   -  person Matt Lishman    schedule 16.06.2016
comment
Он показывает ошибку, но класс ошибки (красная линия и метки на входе userName) не применяется немедленно.   -  person boi_echos    schedule 16.06.2016


Ответы (1)


Работает, смотрите плункер плункер

Используйте ng-class для динамического добавления «errorClass» в поле ввода

ng-class="{'errorClass': sampleForm.userName.$error.alreadyTaken}"

Я добавил .errorClass, когда $error становится истинным.

напишите «alexpogi» в поле имени пользователя, что сделает содержимое красным

person MasterMohsin    schedule 16.06.2016
comment
ваше решение работает нормально, но класс ошибок углового материала превращает границу и метку ввода в красный цвет, а не текст. Я вижу, что проблема в угловом материале. Интересно, есть ли у углового материала встроенный или более правильный способ решения этой проблемы. - person boi_echos; 16.06.2016