2017-10-11 1 views
0

Gibt es eine Möglichkeit, emitEvent auf alle Formularsteuerelemente auf false festzulegen?Wie Sie emitEvent für alle Formularsteuerelemente deaktivieren

Für den Moment, wenn wir patchValue oder setValue ist es möglich, Optionen passieren nicht die valueChanges einer Form zu werfen:

form.get['myControlName'].setValue('newValue', {emitEvent:false}) 
form.get['myControlName'].patchValue('newValue', {emitEvent:false}) 

Aber wenn wir eine Menge patchValue oder setValue haben, ist es ein bit repetitive ... ich da eine Möglichkeit das emitEvent vorher zu deaktivieren, alle Werte zu ändern und danach wieder zu aktivieren?

Antwort

1

können Sie eine einfache Lösung wie diese verwenden: Iterierte auf alle Bedienelemente von Ihnen bilden und deren Wert zurückgesetzt und stellen Sie die emitEvent-false:

//the "manual" solution : 
form.controls['name'].setValue('nameNewValue', {emitEvent:false}); 
form.controls['address'].setValue('addressNewValue', {emitEvent:false}); 

// the "dynamic" solution 
for(let control in form.controls){    
    form.controls[control].setValue(form.controls[control].value, {emitEvent:false}); 
} 

hoffe, es hilft :)

Verwandte Themen