【发布时间】:2018-09-03 22:32:03
【问题描述】:
我有一个在(按键)上得到验证的输入字段。然而,这并没有发生。唯一有效的情况是我转到另一个输入字段或单击离开并返回。这是我的代码。
<mat-form-field>
<input matInput placeholder="Network Address" name="network" [(ngModel)]="model.network" required (keypress)="validate($event)">
<mat-hint>CIDR format, e.g. 192.168.65.0/25</mat-hint>
<mat-error *ngFor="let error of errors_by_field['network']">{{error.message}}</mat-error>
</mat-form-field>
validate() {
this.http.post<GetItemResult>('/api/branches', this.model).subscribe(data => {
this.result = data;
console.log(this.result);
this.branch = data.item;
this.errors_by_field = errors_by_field(data.errors);
for (const [field, errors] of Object.entries(this.errors_by_field)) {
if (field !== 'global') {
this.form.form.controls[field].setErrors({server_error: true});
}
}
},
err => {
this.submitting = false;
});
}
当我在控制台记录 ts 代码结果时,它会在每次按键时打印出结果,只是在第一次触摸输入时不显示。我必须点击其他地方并返回它才能工作
【问题讨论】:
-
同时显示您的 .ts 代码
-
请查看有问题的编辑
标签: angular angular-material angular-validation