AngularJS Developer Guide - Формы сообщают, что существует множество стилей и директив, касающихся форм и полей. Для каждого класса CSS:
ng-valid
ng-invalid
ng-pristine
ng-dirty
ng-touched
ng-untouched
В чем разница pristine/dirty
, а touched/untouched
?
Ответы:
AngularJS Developer Guide - CSS классы, используемые AngularJS
источник
$pristine
/$dirty
сообщает вам, действительно ли пользователь что-то изменил , в то время как$touched
/$untouched
сообщает вам, был ли пользователь там просто / посещен .Это действительно полезно для проверки. Причина
$dirty
всегда заключалась в том, чтобы не показывать ответы проверки, пока пользователь фактически не посетил определенный элемент управления. Но, используя только$dirty
свойство, пользователь не получит обратную связь проверки, если он фактически не изменил значение. Таким образом,$invalid
поле все равно не будет показывать пользователю приглашение, если пользователь не изменил / не взаимодействовал со значением. Если пользователь полностью игнорировал обязательное поле, все выглядело нормально.С Angular 1.3 и
ng-touched
теперь вы можете установить определенный стиль для элемента управления, как только пользователь размыл изображение, независимо от того, отредактировали ли они значение или нет.Вот CodePen, который показывает разницу в поведении.
источник
$setPristine
просто делает форму un-$dirty
. Я думаю, что вы можете хотетьform.setValidity()
. Смотрите несколько полезных ответов на этот пост .В Pro Angular-6 книга подробно описана ниже;
invalid : это свойство возвращает true, если содержимое элемента недопустимо, и false в противном случае.
pristine : это свойство возвращает true, если содержимое элемента не было изменено.
источник
Стоит отметить, что свойства проверки различны для форм и элементов формы (обратите внимание, что касание и неприкосновение только для полей):
источник