Formular-Steuerelement-valueChanges gibt den vorherigen Wert

Ich habe ein Formular-Steuerelement mit dem Namen 'question1' innerhalb des form-Objekts parentForm und ich abonniert haben, um es in der folgenden Weise.

Seine radio-button mit zwei Optionen Yes und No, wenn ich wählen Sie No bekomme ich Yes und wenn ich wählen Sie Yes seine eine No.

this.parentForm.controls['question1'].valueChanges.subscribe(
  (selectedValue) => {
    //If option `No is selected`
    console.log(selectedValue);  //displays No. OK
    console.log(this.parentForm.value['question1']);  //displays Yes. Problem is here
  }
);

selectedValue variable hat den richtigen Wert, aber wenn ich console.log(this.parentForm.value['question1'] es gibt den vorherigen Wert.

Habe ich ein setTimeout() vor Abruf der Wert von this.parentForm.value['question1'] - Es funktioniert einfach gut.

setTimeout(() => {
  console.log(this.parentForm.value['question1']); //gives the correct value.
}, 500);

Aber meine Frage ist, warum parentForm wird nicht aktualisiert, wenn seine Kontroll-Wert-änderungen und auch ich bin beim abrufen seinen Wert erst, nachdem der Wert geändert wurde.

Hinweis: ich will nicht zu beobachten parentForm.valueChanges, nicht meine Anforderung.

Also, was Sie daran hindert, mit selectedValue?
Mit this.parentForm.value['question1'] ich auf Sie zugreifen kann überall innerhalb der Komponente. selectedValue hat nur einen lokalen Gültigkeitsbereich.

InformationsquelleAutor Amit Chigadani | 2017-07-04

Schreibe einen Kommentar