Angular 4 Reactive Form reset()函数在重置时显示错误消息

时间:2019-02-06 11:06:31

标签: angular

示例代码

<input type="text" formControlName="firstName" class="form-control col-md-11" [ngClass]="{ 'is-invalid': submittedCreateUserForm && fCreateuser.firstName.errors }" placeholder="First Name" />
<div *ngIf="submittedCreateUserForm && fCreateArticle.firstName.errors" class="invalid-feedback">
    <div *ngIf="fCreateuser.firstName.errors.required" style="color:red">First Name is required</div>
</div>

在调用reset()函数时,将显示错误消息“ 必须输入名字 ”,输入框颜色为红色。

1 个答案:

答案 0 :(得分:0)

这是一个目前存在于角度的错误。当我们在formGroup上使用reset()时,它不应正确地重置状态(原始和未压缩)。为了克服这个问题,我们需要对formGroup中的每个控件进行重置,并将setError设置为null。 例如:

this.questionForm = this._fb.group({
      title: [null, Validators.required],
      information: [''],
    });

要正确重置questioForm,以便我不会在视图部分显示任何验证错误,

Object.keys(this.questionForm.controls).forEach(controlName => {
  this.questionForm.controls[controlName].reset();
  this.questionForm.controls[controlName].setErrors(null);
});

您可以检查他们的git repo here