Angular 在模型驱动表单中提交后如何清除表单?(2)

Angular 在模型驱动表单中提交后如何清除表单?(2),angular,angular2-forms,Angular,Angular2 Forms,以模型驱动表单提交后,如何清除表单?我必须使用ngModel?谢谢 <form [ngFormModel]="myForm" (ngSubmit)="onSubmit()"> <input type="text" [ngFormControl]="name"> <button type="submit">Submit</button> </form> 您可以迭代this.myForm.controls中的控件,并调用u

以模型驱动表单提交后,如何清除表单?我必须使用
ngModel
?谢谢

<form [ngFormModel]="myForm" (ngSubmit)="onSubmit()">
    <input type="text" [ngFormControl]="name">
    <button type="submit">Submit</button>
</form>

您可以迭代
this.myForm.controls
中的控件,并调用
updateValue()
。否则,请参见

您只需重新初始化表单,如下所示:

this.myForm = this._formBuilder.group({
    'name': [""]
});

这将从更新的angular2版本开始将formControlName字段重置为空

,angular2为我们提供了重置功能,只需使用此语法即可重置表单的所有控件

this.Your_form_name.reset();
PS:表单提交后,如果您重新初始化表单,它可能会清除一次值,但状态根本不会重置,我的意思是表单将不再处于脏状态(验证观点)

有关更多详细信息,请参阅此处


如果您有一些服务器验证,另一种有用的方法是:

<form #myForm="ngForm" (ngSubmit)="onSubmit(myForm)">
    ...
</form>
<form #myForm="ngForm" (ngSubmit)="onSubmit(myForm)">
    ...
</form>
import { NgForm } from '@angular/forms';
onSubmit(myForm: NgForm) {
    // do something and if no error
    myForm.reset();
}