2017-10-11 77 views
0

有沒有辦法將emitEvent設置爲false到所有窗體控件?如何禁用emitEvent到所有窗體控件

就目前而言,當我們patchValue或setValue方法,可以將選項傳遞給未拋出形式的valueChanges:

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

但是,如果我們有很多patchValue或setValue方法,它是一個位重複...我有一種方法來禁用之前emitEvent,更改所有值並在之後再次激活它?

回答

1

你可以用這樣一個簡單的解決方案:對你所有的控制 迭代形成和重置自己的價值,並設置emitEventfalse

//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}); 
} 

希望它能幫助:)

相關問題