2017-10-11 21 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を無効にしてから、すべての値を変更してから再度アクティブにする方法はありますか?形成あなたのすべてのコントロールに 反復し、その値をリセットし、emitEventfalseに設定します:

答えて

1

簡単なこのようなソリューションを使用することができます

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

を願っています、それが役立ちます:)

関連する問題