【发布时间】:2019-04-09 13:47:13
【问题描述】:
我想要多条错误消息,但不知道该怎么做..? 在这里我需要分别验证每个步骤,这就是我使用这个步进器的原因
<form [formGroup]="formGroup" method="POST" #f="ngForm">
<mat-vertical-stepper #linearVerticalStepper="matVerticalStepper" formArrayName="formArray" [linear]="true">
<mat-step formGroupName="0" [stepControl]="formArray?.get([0])">
<mat-form-field>
<mat-label>Email</mat-label>
<input matInput formControlName="emailCtrl" required>
<mat-error>This field is required</mat-error>
<mat-error>Invalid Email</mat-error>
</mat-form-field>
</mat-step>
</mat-vertical-stepper>
</form>
表单生成器是:-
ngOnInit() {
this.formGroup = this._formBuilder.group({
formArray: this._formBuilder.array([
this._formBuilder.group({
emailCtrl: [
"",[
Validators.required,
//此字段为必填项
Validators.pattern(
"^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)+$"
// 提供的电子邮件无效
)]
],
}),
])
});
}
【问题讨论】:
-
你想达到什么目的?
-
我想为两种不同类型的案例显示两条不同的消息,即
<p *ngIf="FirstName.errors.required" class="color-red pad4">First Name is required</p> <p *ngIf="FirstName.errors.maxlength || FirstName.errors.minlength" class="color-red pad4">First Name should be in between 2-30 char</p> -
我认为即使没有触摸表单字段或更改值,您也想显示 mat 错误。是吗?正如@tricheriche 所说,当输入中没有值时,Validators.pattern、Validators.email 或 Validators.maxLength 不会出现错误
标签: angular angular-material angular-material-stepper