首页 > 解决方案 > 使用 ControlAccessValue 制作的角度子表单中的 PatchValue 导致父表单状态为脏

问题描述

我正在构建一个使用嵌套表单的应用程序。

嵌套表单是通过和函数扩展ControlAccessValue父表单并与之对话的组件。onTouchedonChanged

我的问题是,当我修补 SubForm 中的值时, MainForm 被标记为dirty. 相反,我希望这两种形式都是脏的:假的和原始的:真,这实际上是我想要实现的。

我构建了一个简单的 stackblitz 来向您展示我的意思。

问题是:我做错了吗?有什么帮助吗?

示例:https://stackblitz.com/edit/angular-ivy-b9twi8?

如果您注释下面的行,您会看到父表单的脏值设置为false.

this.addressForm.get('street').setValue(this.streetValue);

谢谢你们

标签: angulartypescript

解决方案


我建议写this.addressForm.get('street').setValue(this.streetValue, {onlySelf: true});以防止弄脏主要形式


推荐阅读