我在Angular2中有一个反应式表单设置。在一个组件中,我订阅了一个表格控件的值更改,其去抖时间为500毫秒,如:
myForm.get("myField").valueChanges.debounceTime(500).subscribe(...);
如果值是由代码而不是用户更改的,有没有办法跳过去抖时间?或者有没有办法拆分这两个事件?
答案 0 :(得分:1)
在以编程方式设置值的位置,您可以使用emitEvent:false
,其中docs表示...
如果
emitEvent
为true
,则此更改将导致FormControl上的valueChanges
事件被发出。默认为true
。
因此将其设置为false
不会导致valueChanges
触发,因此如果您在某个时间点设置值,则可以执行以下操作:
this.myForm.get('myField').patchValue('my value', {emitEvent:false})