Angular2 - Wie man `berührt` - Eigenschaft der form auf true
Ich habe eine reaktive form in meine Komponente und ich möchte, um die touched
Eigenschaft an jedem der Eingänge gleich true
. Mein aktuelle code, aber es wirft den Fehler Cannot set property touched of #<AbstractControl> which has only a getter
:
addressForm: FormGroup;
...
this.addressForm = this._fb.group({
street: ["", [<any>Validators.required]],
city: ["", [<any>Validators.required]],
state: ["", [<any>Validators.required]],
zipCode: ["", [<any>Validators.required]],
country: ["", [<any>Validators.required]]
});
...
for (var key in this.addressForm.controls) {
this.addressForm.controls[key].touched = true;
}
Wie kann ich die touched
Wert jedes Eingangs zu true
?
- Berührt und Unberührt, nur-Lesen-Eigenschaften.Sie können nicht einen Wert zuweisen.
- BTW, wenn Sie #myForm="ngForm" auf das HTML-Formular-element, Sie haben Zugriff auf myForm.vorgelegt in der HTML -, so könnte nicht brauchen, um mit Mühe .berührt
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist eine ziemlich einfache Methode, um dies zu tun:
markAsTouched
. Es sollte genug sein, um es auf die form-Gruppe.Falls Sie wollen, dass aus irgendeinem Grund, markieren Sie alle Steuerelemente manuell, Sie selbst haben diese Methode zur Verfügung.
markAsTouched
ist eine Methode, dieAbstractControl
alle Formular-Elemente Erben aus. Aus Neugier, möchten Sie vielleicht zu besuchen, die@angular/forms/src/model.d.ts
Deklaration-Datei finden Sie einige weitere interessante Methoden der form-Objekte. Oder besuchen Sie einfach die Dokumentation.