angular - 获取角度6中表单控件的验证错误列表
问题描述
我正在使用带有反应形式的 Angular 6。我想动态显示验证消息。我写了一些如下代码。但我接受了这个错误:找不到类型为“object”的不同支持对象“[object Object]”。NgFor 仅支持绑定到 Iterables,例如 Arrays。如何获取输入错误列表?
.html 文件
<form [formGroup]="myForm" (ngSubmit)="save()">
<input type="text" formControlName="studentName">
<div *ngFor="let err of myForm.controls.studentName.errors">
<div>You entered not valid input</div>
</div>
</form>
.ts 文件
this.myForm = this.formBuilder.group({
studentName: ['', Validators.required, Validators.minLength(3)]
});
解决方案
我找到了解决方案。我的错误是,我认为那myForm.controls.studentName.errors
是一个数组。但是,它不是数组,它是一个对象。所以,下面的代码工作得很好。
.html 文件
<form [formGroup]="myForm" (ngSubmit)="save()">
<input type="text" formControlName="studentName">
<div *ngFor="let err of getErrorList(myForm.controls.studentName.errors)">
<div>You entered not valid input</div>
</div>
</form>
.ts 文件
this.myForm = this.formBuilder.group({
studentName: ['', Validators.required, Validators.minLength(3)]
});
getErrorList(errorObject) {
return Object.keys(errorObject);
}
推荐阅读
- c# - 更改表页面时的 C# System.Web.HttpUnhandledExcpetion
- iso8583 - ISO 8583 消息数字(以字节为单位)
- mysql - 如何使用 mysql join 执行此查询?
- excel - 使对象在VBA中向上增长
- swift - 在 SceneKit 中检测对象的子节点上的触摸
- python - Django项目给我TypeError:combine()在部署时最多接受2个参数(3个给定)
- ansible - Ansible bigip_command 模块
- java - Jhipster Prod 构建失败
- php - 如何在 Laravel 中为帖子创建描述性文本?
- go - 当我通过反射构造它时,为什么 Golang yaml.v2 会将我的结构变成一个映射?