【发布时间】:2021-10-08 19:14:37
【问题描述】:
我有一个表格,动态填写 init(使用数据库数据)。
我添加了一个模式检查(使用一些 REGEX)。如果模式不好,则会显示mat-error。如果我专注于输入然后再专注于输入,它就会起作用。
但是如果我使用 FormControl 中的setValue() 函数,mat-error 不会自动显示。
这是 mat-error 定义:
<input [id]="field.id" matInput type="text" [formControl]="field.control" [pattern]="field.pattern">
<mat-error class="mt-1" *ngIf="field.control.errors">
{{ getErrorMessage(field.id, category['id']) }}
</mat-error>
以及我自动设置值的方式
async fillForm(data: any): Promise<any> {
this.fields = data.fields;
for (let category in this.fields) {
for (let cpt in this.fields[category]) {
let field = this.fields[category][cpt];
this.form[category].push({
id: field.id,
label: field.label,
required: field.required,
control: new FormControl(),
type: field.type,
pattern: this.getPattern(field.format),
color: field.color,
unit: field.unit,
class: field.class,
format: field.format,
display: field.display,
format_icon: field.format_icon,
display_icon: field.display_icon,
class_label: field.class_label,
cpt: 0,
});
let value = this.invoice.datas[field.id];
let _field = this.form[category][this.form[category].length - 1];
_field.control.setValue(value);
}
}
}
感谢您的帮助
【问题讨论】:
标签: angular form-control