2017-03-15 4 views
6

Irgendwelche Ideen, warum beim Ausführen des folgenden Codes bekomme ich die valueChanges Ereignis von 'firstName' Steuerelement ausgelöst?aktivieren/deaktivieren Formularsteuerung feuert valueChanges Angular 2 Forms

let form: FormGroup = this.createForm(); 
form.controls['firstName'].enable(); 

form.controls['firstName'].valueChanges(value=>{ 
     //some code 
}); 

Da kein Wert (nur den Status) geändert hat, würde ich nicht erwarten valueChanges hier ausgelöst werden, nur die statusChanged. Fehle ich etwas?

Antwort

4

Grundsätzlich ist das vollständige Formular einem Modell zugeordnet. Wenn Sie also ein Steuerelement aktivieren/deaktivieren, ändert sich die Eigenschaft des Formularmodells. Und weil sich das Modell ändert, wird das Ereignis valueChanges ausgelöst. Ich denke es ist normal.

+7

Einige Vorschläge, wie man es vermeiden kann, außer 'this.form.controls [controlKey] .enable ({emmEvent: false});'? – Ben

+0

Sie sagen, es gibt einen Fehler mit dieser Funktion: https://github.com/angular/angular/issues/12366 – Sleeper9

+1

Sie sind ein Lebensretter – pantonis

Verwandte Themen