patchValue with emitEvent: false, onlySelf: true 触发 Angular 中的 valueChanges

Posted

技术标签:

【中文标题】patchValue with emitEvent: false, onlySelf: true 触发 Angular 中的 valueChanges【英文标题】:patchValue with emitEvent: false, onlySelf: true triggers valueChanges in AngularpatchValue with emitEvent: false, onlySelf: true 触发 Angular 中的 valueChanges 【发布时间】:2020-10-14 20:40:00 【问题描述】:

我有一个重置按钮,它使用 patchValue 重置域的值

onReset()       
    this.addModelForm.patchValue( domain: '', emitEvent: false, onlySelf: true); 

这是域的 valueChanges 方法:

this.addModelForm.get('domain').valueChanges.subscribe(domainId => 
    console.log("value changed!")
);

它打印“值已更改!”在控制台上 2 次。我不想触发 valueChanges 方法。 emitEvent 不工作。

【问题讨论】:

【参考方案1】:

既然你在 FormGroup 上使用 patchValue 应该是这样的:

试试这个:

 this.addModelForm.patchValue(  domain: '' ,emitEvent: false); 

【讨论】:

以上是关于patchValue with emitEvent: false, onlySelf: true 触发 Angular 中的 valueChanges的主要内容,如果未能解决你的问题,请参考以下文章

Angular Reactive Forms,patchValue 不起作用,嵌套表单

typescript 响应式表单:setValue方法和patchValue

Angular 8:反应式表单自动映射和 PatchValue 设置成员数据

如何在测试 Angular 2 反应形式中使用 setValue 和 patchValue

formbuilder 的 patchvalue 或 setvalue 不会将字段标记为脏或已触及

Angular 4 监听 setValue 或 patchValue 而不是使用 valueChanges