如何在 Angular 上使用正确的 markAsDirty

How use correct markAsDirty on Angular

请有人向我解释一下使用 markAsDirty 的正确方法。

在我的示例中,如果 markAsDirty 在表单上完成,则任何控件上的重置都会将表单更改为原始状态。

这是预期的行为吗?

https://stackblitz.com/edit/angular-h9gtyf?file=src%2Fapp%2Fapp.component.ts

您需要为重置方法设置选项参数,例如:form2.get('id2').reset(null, {onlySelf: true});

onlySelf 选项仅将 reset() 应用于该控件,而不是其父控件。

它的默认值为 false,这就是为什么您的表单在重置 id2 表单控件后被标记为原始的原因。

可以查看angular官网:https://angular.io/api/forms/FormControl#reset