2017-02-14 5 views

Antwort

45

heraus gefunden, dass Object.keys kann damit umgehen ..

Object.keys(this.form.controls).forEach(key => { 
    this.form.get(key).markAsDirty(); 
}); 
+1

Wenn ich diese Funktion in onSubmit verwende, erhalte ich den Fehler 'Kann einen Ausdruck nicht aufrufen, dessen Typ keine Anrufsignatur hat. Type 'AbstractControl' hat keine kompatiblen Anrufsignaturen. Weiß jemand warum? – maidi

+0

Object.keys (this.registerForm.controls) .forEach (Schlüssel => { this.registerForm.controls [key] .markAsDirty(); }); – Foad

+0

Wenn ich Object.keys oder sogar das "in" versuche, bekomme ich nichts. Wenn ich jedoch console.log (form.controls) kann ich alle verschiedenen Formular-Steuerelemente mit dem Objekt enthalten. Ich bin verwirrt. –

4

Object.keys(this.registerForm.controls).forEach(key => { 
 
     this.registerForm.controls[key].markAsDirty(); 
 
    });

5

Für das, was es wert ist, gibt es einen anderen Weg, dies zu tun, ohne Object.keys zu verwenden (. ..) magisch:

for (const field in this.form.controls) { // 'field' is a string 

    const control = this.form.get(field); // 'control' is a FormControl 

} 
Verwandte Themen