Angular 表单在提交后重置

Angular form reset after submit

我有 Angular 表格(非反应式):

<form #form="ngForm" (submit)="submit(); form.reset()">
 <input ... />
</form>

但是提交后表单没有重置,输入仍然标记为触摸。

请解释一下,我如何在 Angular 5 中重置表单?

StackBlitz:https://stackblitz.com/edit/reset-form-demo-jdsdwe2

我想要的:清除焦点并在提交后标记为未触及。

使用 @angular/forms 当您使用 <form> 标签时,它会自动创建一个 FormGroup。

对于每个包含的 ngModel 标记,它将创建一个 FormControl 并将其添加到上面创建的 FormGroup 中;此 FormControl 将使用属性名称命名为 FormGroup。

示例:

<form #f="ngForm">
    <input type="text" [(ngModel)]="firstFieldVariable" name="firstField">
    <span>{{ f.controls['firstField']?.value }}</span>
</form>

当您将它标记为 standalone: true 时,这不会发生(它不会被添加到 FormGroup)。