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