angular - Angular 4 Reactive form reset() 函数在重置时显示错误消息
问题描述
示例代码
<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()
函数时,它将显示错误消息“ First Name is required ”,输入框颜色为红色。
解决方案
这是目前 Angular 中的一个错误。当我们在 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);
});
推荐阅读
- c++ - MacOS 10.14b / C++ 使用:找不到命令,怎么办?
- java - 公共接口 BaseRepository 扩展了 JpaRepository
{ } - python - 使用 Python 3 在 Arcade 中居中窗口
- sqlite - 使用 TCL:在内存临时表中创建表时出现 Sqlite 语法错误
- arrays - 测试排序函数正确性的最快方法是什么?
- python - Python - 重载异步方法
- javascript - 获取从 SweetAlert2 到 PHP 的电子邮件值?
- javascript - 代码适用于 jsfiddle 但不适用于 localhost 为什么
- python-3.x - skimage.color.rgb2lab 的输入应该是什么?
- python - 在熊猫数据框中查找第二个最近的日期