2016-12-07 3 views
1

Wenn ich einen Wert in einem Eingabefeld ändere, wird das entsprechende Formular-Steuerelement auf schmutzig gesetzt. Wenn ich meine Änderung rückgängig mache (durch Eingabe in das Eingabefeld), bleibt die Formularsteuerung schmutzig. Ist das beabsichtigt, ist das ein Fehler oder mache ich etwas falsch?angular2 formcontrol bleibt schmutzig, auch wenn auf den ursprünglichen Wert gesetzt

+0

Sie schon berührt den Eingang, dann, Es ist dity! Sie können Untouched durch Kodierung erzwingen, wenn die Eingabe zum Beispiel leer ist! – Fals

+0

Sie sollten die AbstractControl-Dokumentation lesen, die auflistet, was die Zustände sind und wie sie gesetzt sind: https://angular.io/docs/ts/latest/api/forms/index/AbstractControl-class.html Im Allgemeinen, suchen Die Dokumentation zuerst, bevor SO gefragt wird, ist eine gute Idee. – silentsod

+0

Es ist nicht klar, dass der Wert immer noch geändert wird, wenn der Benutzer einen Wert ändert und dann in den ursprünglichen Zustand zurückkehrt. Die Bedeutung des Wortes dreckig ist anders. Wenn jemand etwas schmutzig macht und es anschließend reinigt, ist es nicht mehr dreckig! – user3725805

Antwort

1

Na ja, ja, es sollte da auf diese Weise arbeiten:

Eine Kontrolle ist dirty, wenn der Benutzer den Wert in der Benutzeroberfläche geändert hat.()

..und nicht wenn der Wert vom Startwert abweicht.


Falls Sie wollen zurückkehren das schmutzige Zustand Sie die markAsPristine() (docs entry) verwenden könnte auf Ihrem AbstractControl. (z. B. triggern Sie es durch Klicken auf eine Schaltfläche oder bei der valueChanges Observable der AbstractControl abonnieren und vergleichen Sie den neuen Wert mit einer zuvor gespeicherten ...)

+0

aber das ist nicht die Bedeutung des Wortes dreckig – user3725805

+1

Gut zB: Du hast ein (sauberes und kristallklares) Glas Wasser vor dir. Du nimmst das Glas, trinkst das Wasser und füllst es auf seinen ursprünglichen ml-Wert auf. Der ml Wasser in deinem Glas könnte immer noch derselbe sein, aber es hat deine Fingerabdrücke auf seinem ... .. es ist jetzt dreckig .. ..so wir haben unseren Geschirrspüler namens 'markAsPristine()' dafür –

+1

Ich würde sagen, es ist berührt, aber trotzdem gut Punkt. – user3725805

Verwandte Themen