Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何防止以Angular2+;的被动形式重复调用onChange回调;?_Javascript_Angular_Angular Components_Angular Reactive Forms - Fatal编程技术网

Javascript 如何防止以Angular2+;的被动形式重复调用onChange回调;?

Javascript 如何防止以Angular2+;的被动形式重复调用onChange回调;?,javascript,angular,angular-components,angular-reactive-forms,Javascript,Angular,Angular Components,Angular Reactive Forms,演示: 我有一些第三方组件(app/counter.component.ts中的ThirdPartCounter)。我已经把它包装成角度分量,并订阅了这个计数器的更改。当我与计数器UI(Increment按钮)交互时,我的流中有正确的事件。但是如果我手动设置计数器值(Clear按钮),我在这个流中有重复的事件(一个是因为组件更改,下一个在writeValue之后调用) 如何防止在writeValue回调后发生过多事件?尝试此操作,它不会与emitEvent复制为false clear() {

演示:

我有一些第三方组件(
app/counter.component.ts
中的
ThirdPartCounter
)。我已经把它包装成角度分量,并订阅了这个计数器的更改。当我与计数器UI(
Increment
按钮)交互时,我的流中有正确的事件。但是如果我手动设置计数器值(
Clear
按钮),我在这个流中有重复的事件(一个是因为组件更改,下一个在
writeValue
之后调用)


如何防止在
writeValue
回调后发生过多事件?

尝试此操作,它不会与emitEvent复制为false

 clear() {
  this.myForm.controls['counter'].patchValue(0, {emitEvent : false});
 }
在这里检查它

this.myForm.patchValue({counter:0},{emitEvent:false})也可以工作。谢谢