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

Требует ли 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>

Однако я устанавливаю test равным чему-то в области видимости, тогда проверка ошибок работает нормально:

$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