angular - 重新加载页面时显示 Angular Material (8) 错误消息(来自验证器)
问题描述
我是新手Angular Material
。我正在使用Angular Material (8)
. 这样做时,我看到重新加载页面时显示错误消息(通过点击浏览器上的“刷新”按钮)。从未以任何方式、形状或形式触及该领域。
为什么会这样?
TIA
文件:register.component.html
[ ... snip ...]
<div class="flex-register-form">
<!-- Form -->
<form [formGroup]="registerForm" (ngSubmit)="registerForm.valid && onSubmit()" class="text-center">
<div class="form-col">
<div class="col">
<!-- First name -->
<div class="md-form">
<input required type="text" id="materialRegisterFormFirstName" class="form-control" mdbInput
formControlName="firstname" />
<label for="materialRegisterFormFirstName">First name</label>
<mat-error *ngIf="registerForm.controls['firstname'].hasError('required')" >First name is required</mat-error>
</div>
[ ... snip ...]
文件:register.component.ts
import { Component, OnInit } from '@angular/core';
import { RegisterModel } from '../../models/register.models';
import { FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms';
@Component({
selector: 'app-register',
templateUrl: './register.component.html',
styleUrls: ['./register.component.scss']
})
export class RegisterComponent implements OnInit {
user: RegisterModel = new RegisterModel();
registerForm: FormGroup;
constructor(private formBuilder: FormBuilder) {
}
ngOnInit() {
this.registerForm = new FormGroup({
'firstname': new FormControl(null, [Validators.required]),
'lastname': new FormControl(null, [Validators.required, Validators.maxLength(25)]),
'email': new FormControl(null, [Validators.required, Validators.email, Validators.maxLength(25)]),
'password': new FormControl(null, [Validators.required, Validators.minLength(8), Validators.maxLength(25)]),
'agree': new FormControl(null, [Validators.required])
});
}
onSubmit() {
console.log(" was submited ");
}
}
解决方案
这是因为根据验证它正在等待。touched
但是,我们还没有接触到控件,所以我们可以做的是,我们可以通过检查表单域的控件状态来检查用户是否与控件进行了交互。
更正
<mat-error *ngIf="registerForm.controls['firstname'].hasError('required') && registerForm.controls.firstname.touched" >First name is required</mat-error>
你可以在这里阅读更多关于它的信息
推荐阅读
- mongodb - Mongoose 动态地将对象从不同集合中的数组添加到模式
- node.js - 快速网关记录每个请求
- next.js - 将 Next.js v10.1.13 更新到 webpack5 时,收到警告 Can't resolve 'fsevents' in chokidar
- angular - 观察者订阅不会将数据加载到数据源,使用材料表 Angular
- bash - Unix命令在嵌套目录下的多个文件中查找和替换字符串
- python - 编解码器无法解码字节 - base64-decoding
- html - 如何在 CSS Grid 中勾勒出整列
- formatting - TexMaker 中的列表格式不一致
- reactjs - 编辑器反应草稿所见即所得无法读取未定义的属性“名称”
- javascript - 带有 .where() 文档参考的云函数 batch()