Ich habe festgestellt, dass das Steuerelement nicht in den form.value aufgenommen wird, wenn ich ein Steuerelement in einem reaktiven Angular 2-Formular deaktiviere. Zum Beispiel, wenn ich mein Formular wie folgt definiere:
this.notelinkingForm = new FormGroup({
Enabled: new FormControl(settings.Enabled, Validators.required),
LinkToPreceeding: new FormControl({value: settings.LinkToPreceeding, disabled: !settings.Enabled}, Validators.required),
LinkingTolerance: new FormControl({value: settings.LinkingTolerance, disabled: !settings.Enabled}, Validators.required)
});
und überprüfen Sie den Wert this.notelinkingForm.value. Wenn alle Steuerelemente aktiviert sind, lautet die Ausgabe wie folgt:
{"Enabled":true, "LinkToPreceeding": true, LinkingTolerance:"100"}
Wenn jedoch einige der Steuerelemente deaktiviert sind, ist dies:
{"Enabled":true}
Beachten Sie, wie die deaktivierten Steuerelemente ausgeschlossen werden.
Wenn sich das Formular ändert, möchte ich in der Lage sein, den form.value mit allen darin enthaltenen Eigenschaften an meine Rest-API zu übergeben. Dies ist offensichtlich nicht möglich, wenn die deaktivierten Elemente nicht enthalten sind.
Vermisse ich hier etwas oder ist dies das erwartete Verhalten? Gibt es eine Möglichkeit, Angular anzuweisen, die deaktivierten Elemente in den form.value aufzunehmen?
Begrüße deine Gedanken.
quelle
Eine andere Option, die ich benutze, ist:
this.form.controls['LinkToPreceeding'].value;
quelle
Vielen Dank an @Sasxa, dass Sie mir 80% das gebracht haben, was ich brauchte.
Für diejenigen unter Ihnen, die nach einer Lösung für dasselbe Problem suchen, aber für verschachtelte Formulare, die ich lösen konnte, indem ich meine üblichen geändert habe
zu
quelle