AngularJS Developer Guide - Formulare geben an , dass es viele Stile und Anweisungen in Bezug auf Formulare und Felder gibt. Für jede eine CSS-Klasse:
ng-valid
ng-invalid
ng-pristine
ng-dirty
ng-touched
ng-untouched
Was ist der Unterschied zwischen pristine/dirty
und touched/untouched
?
Antworten:
AngularJS Developer Guide - Von AngularJS verwendete CSS-Klassen
quelle
$pristine
/$dirty
sagt Ihnen, ob der Benutzer tatsächlich etwas geändert hat, während$touched
/$untouched
Ihnen sagt, ob der Benutzer lediglich dort war / besucht wurde .Dies ist sehr nützlich für die Validierung. Der Grund dafür
$dirty
war immer, dass keine Validierungsantworten angezeigt werden, bis der Benutzer tatsächlich ein bestimmtes Steuerelement besucht hat. Wenn Sie jedoch nur die$dirty
Eigenschaft verwenden, erhält der Benutzer kein Validierungsfeedback, es sei denn, er hat den Wert tatsächlich geändert. Ein$invalid
Feld würde dem Benutzer also immer noch keine Eingabeaufforderung anzeigen, wenn der Benutzer den Wert nicht geändert / mit ihm interagiert hätte. Wenn der Benutzer ein erforderliches Feld vollständig ignorierte, sah alles in Ordnung aus.Mit Angular 1.3 und
ng-touched
können Sie jetzt einen bestimmten Stil für ein Steuerelement festlegen, sobald der Benutzer unscharf geworden ist, unabhängig davon, ob er den Wert tatsächlich bearbeitet hat oder nicht.Hier ist ein CodePen , der den Unterschied im Verhalten zeigt.
quelle
$setPristine
macht einfach die Form un-$dirty
. Ich denke, Sie möchten vielleichtform.setValidity()
. In diesem Beitrag finden Sie einige hilfreiche Antworten .In Pro Angular-6 wird das Buch wie folgt detailliert beschrieben.
ungültig : Diese Eigenschaft gibt true zurück , wenn der Inhalt des Elements ungültig ist, andernfalls false.
pristine : Diese Eigenschaft gibt true zurück , wenn der Inhalt des Elements nicht geändert wurde.
quelle
Es ist erwähnenswert, dass die Validierungseigenschaften für Formulare und Formularelemente unterschiedlich sind (beachten Sie, dass berührt und unberührt nur für Felder gelten):
quelle