ъгловият вход на материалния дизайн изисква

Изисква ли Angular Material Design входен ng-модел да бъде равен на променлива, за да работи?

Без да използвате Material Design, следната проверка за грешки работи перфектно.

<label>First Name (as it appears on your card)</label>
<input type="text" name="firstName" data-ng-model="test" required/>

Използвайки Material Design обаче, следното винаги връща невалидно, освен ако потребителят не въведе нещо, не го изтрие и не въведе нещо друго.

<md-input-container>
  <label>First Name (as it appears on your card)</label>
  <input type="text" name="firstName" data-ng-model="test" required/>
</md-input-container>

Въпреки това, зададох тест, равен на нещо в обхвата, след което проверката за грешки работи добре:

$scope.test = 'this value';

Има ли начин за проверка на грешки с помощта на Material Design, без да е необходимо да се указва стойност по подразбиране за полета?


person user3554664    schedule 03.03.2015    source източник
comment
Не съм сигурен какво имате предвид проверката за грешки не работи, но второто звучи като правилното поведение. Едно поле се маркира като неправилно, когато необходимият атрибут присъства, ако е празно И е докоснато (т.е. редактирано) и не преди това. По този начин задължителните полета не се маркират като невалидни веднага щом формулярът бъде представен.   -  person masimplo    schedule 04.03.2015
comment
Но с втория, без $scope.test = 'this value'; в контролера, тогава веднага щом напиша текст, напр.: 'здравей', тогава няма да валидирам. Трябва първо да напиша нещо, след това да го изтрия, след което да напиша нещо отново, за да бъде разпознато като вярно. Така че се маркира като неправилен след докосване И не е празен.   -  person user3554664    schedule 04.03.2015
comment
можете ли да публикувате jsfiddle/plunker, демонстриращ горното?   -  person masimplo    schedule 04.03.2015
comment
Виждам малко по-различно поведение. Полето не е маркирано като грешка, докато не го избера за редактиране. След като бъде избран, той се маркира като грешка, преди да мога да въведа нещо в него. След като напиша, грешката изчезва. Бих очаквал грешката да не се появи, докато не избера и след това изляза, без да добавя нищо.   -  person Ken Joyner    schedule 13.03.2015


Отговори (1)


Мисля, че може да не сте инициализирали променливата ng-model в контролера.

Опитайте да инициализирате променливата, $scope.test = '';

person Rohan Goel    schedule 13.07.2017