向验证表单字段[重复]添加验证

问题描述 投票:0回答:3
我正在使用以下代码在mat表单字段中设置错误:

<mat-form-field appearance="fill"> <mat-label> {{ Email }}</mat-label> <input formControlName="email"> <mat-error *ngIf="service.form.get('email').hasError('maxlength')">{{ 'Display.messageLength' }}</mat-error> <mat-error *ngIf="service.form.get('email').hasError('required')">{{ 'Display.requiredMessage' }}</mat-error> </mat-form-field>

现在,我想在加载表单时添加另一个错误。正确时,我想在ngOnInit()中显示一个标志,以显示错误。添加第三个mat-error,该错误是不可见的。我经历了stackoverflow并尝试了以下操作:

ngOnInit() { formData.form.controls['email'].setErrors({'flag': true}); }

并在html中添加以下代码

<mat-form-field appearance="fill"> <mat-label> {{ Email }}</mat-label> <input formControlName="email"> <mat-error *ngIf="service.form.get('email').hasError('maxlength')">{{ 'Display.messageLength' }}</mat-error> <mat-error *ngIf="service.form.get('email').hasError('required')">{{ 'Display.requiredMessage' }} <mat-error *ngIf="!email.valid">{{email.errors| json}">{{ 'Display.requiredMessage' }} </mat-error> </mat-form-field>

我的服务代码如下:

form: FormGroup = new FormGroup({ email: new FormControl('', [Validators.maxLength(10), Validators.required]), });

页面加载后仍然没有得到任何东西。我该怎么办?
angular angular6 angular7 angular8
3个回答
0
投票

0
投票
ts文件中的表单验证器:

email: ['', Validators.compose([ Validators.required, Validators.email, Validators.minLength(3), Validators.maxLength(320) ]), ],


0
投票
© www.soinside.com 2019 - 2024. All rights reserved.