У меня есть небольшая угловая проверка, где я хочу, чтобы ошибка отображалась, если текстовое поле грязно, и еще одна ошибка, если это необходимо.
мой html:
<form name="someform1" controller="validateCtrl" novalidate>
<input ng-model="namefld" type="text" required/>
<span ng-show="someform1.namefld.$dirty">pls enter name field</span>
<span ng-show="someform1.namefld.$error.required">Username is required.</span>
</form>
я установил контроллер следующим образом:
var myapp = angular.module("myApp",[]);
app.controller('validateCtrl', function($scope) {
$scope.namefld = 'John Doe';
$scope.email = '[email protected]';
});
"myApp" определен в <html>
так что это не проблема. Я что-то упускаю и новичок в угловой, PLS руководство, что я делаю неправильно.
Вам также нужно добавить name
на ввод. Как вы уже установили, $dirty
будет работать только на самой форме не на каждом отдельном входе, вам нужно добавить имя для входов для этого
Работа по проверке угловой формы основана на названии формы и входов формы. В вашем случае вы указали имя формы, но не элемент ввода. Добавьте name="namefld"
во входной элемент, и он будет работать.
<form name="someform1" novalidate>
<input ng-model="namefld" name="namefld" type="text" required/>
<span ng-show="someform1.namefld.$dirty">pls enter name field</span>
<span ng-show="someform1.namefld.$error.required">Username is required.</span>
</form>
См. Рабочий JSbin для того же, что я создал
Вам не хватает name='namefld'
<input ng-model="namefld" name='namefld' type="text" required/>
name
к вашемуinput
тегу. Например,<input ng-model="namefld" type="text" name="namefld" required />
.