Guide du développeur AngularJS - Les formulaires indiquent qu'il existe de nombreux styles et directives concernant les formulaires et les champs. Pour chacun, une classe CSS:
ng-valid
ng-invalid
ng-pristine
ng-dirty
ng-touched
ng-untouched
Quelle est la différence entre pristine/dirty
et touched/untouched
?
Réponses:
Guide du développeur AngularJS - Classes CSS utilisées par AngularJS
la source
$pristine
/$dirty
vous indique si l'utilisateur a réellement changé quoi que ce soit, tandis que$touched
/$untouched
vous indique si l'utilisateur a simplement été là / visité .C'est vraiment utile pour la validation. La raison
$dirty
était toujours d'éviter d'afficher les réponses de validation tant que l'utilisateur n'a pas réellement visité un certain contrôle. Mais, en utilisant uniquement la$dirty
propriété, l'utilisateur n'obtiendrait pas de retour de validation à moins qu'il ne modifie réellement la valeur. Ainsi, un$invalid
champ n'afficherait toujours pas une invite à l'utilisateur si l'utilisateur ne modifiait pas / n'interagissait pas avec la valeur. Si l'utilisateur a complètement ignoré un champ obligatoire, tout semblait OK.Avec Angular 1.3 et
ng-touched
, vous pouvez désormais définir un style particulier sur un contrôle dès que l'utilisateur est flou, qu'il ait réellement modifié la valeur ou non.Voici un CodePen qui montre la différence de comportement.
la source
$setPristine
rend simplement la forme un-$dirty
. Je pense que vous voudrez peut-êtreform.setValidity()
. Voir plusieurs réponses utiles sur ce post .Dans Pro Angular-6, le livre est détaillé ci-dessous;
invalid : cette propriété renvoie true si le contenu de l'élément n'est pas valide et false dans le cas contraire.
pristine : cette propriété renvoie true si le contenu de l'élément n'a pas été modifié.
la source
Il convient de mentionner que les propriétés de validation sont différentes pour les formulaires et les éléments de formulaire (notez que les champs touchés et intacts ne concernent que les champs):
la source