仅针对用户输入进行角度去抖动

时间:2017-10-26 13:50:47

标签: angular reactive-forms debounce

我在Angular2中有一个反应式表单设置。在一个组件中,我订阅了一个表格控件的值更改,其去抖时间为500毫秒,如:

myForm.get("myField").valueChanges.debounceTime(500).subscribe(...);

如果值是由代码而不是用户更改的,有没有办法跳过去抖时间?或者有没有办法拆分这两个事件?

1 个答案:

答案 0 :(得分:1)

在以编程方式设置值的位置,您可以使用emitEvent:false,其中docs表示...

  

如果emitEventtrue,则此更改将导致FormControl上的valueChanges事件被发出。默认为true

因此将其设置为false不会导致valueChanges触发,因此如果您在某个时间点设置值,则可以执行以下操作:

this.myForm.get('myField').patchValue('my value', {emitEvent:false})