反应形式 angular 在 angular 中显示模式错误
Reactive forms angular show error for pattern in angular
我有这样的反应形式
this.form = this.formBuilder.group({
email: ['', [
Validators.required,
Validators.maxLength(120),
Validators.pattern('^[^\s@]+@[^\s@]+\.[^\s@]{1,}$')
]],
});
现在我需要为不同的错误显示错误,就像这样
<div class="invalid-feedback" *ngIf="form.controls.email.errors.pattern">THIS EMAIL NOT VALID</div>
但是我得到了错误
无法读取 属性 'pattern' 的 null
有人遇到过显示模式错误的类似问题吗?
您要么未通过验证,要么未通过验证。当您通过验证时 form.controls.email.errors
不存在。
为了克服这个问题:您需要将 errors 替换为 errors?,如下所示:
<div class="invalid-feedback" *ngIf="form.controls.email.errors?.pattern">THIS EMAIL NOT VALID</div>
请试试这个::
<div class="invalid-feedback" *ngIf="form.get('email').hasError('pattern')">THIS EMAIL NOT VALID</div>
我有这样的反应形式
this.form = this.formBuilder.group({
email: ['', [
Validators.required,
Validators.maxLength(120),
Validators.pattern('^[^\s@]+@[^\s@]+\.[^\s@]{1,}$')
]],
});
现在我需要为不同的错误显示错误,就像这样
<div class="invalid-feedback" *ngIf="form.controls.email.errors.pattern">THIS EMAIL NOT VALID</div>
但是我得到了错误 无法读取 属性 'pattern' 的 null 有人遇到过显示模式错误的类似问题吗?
您要么未通过验证,要么未通过验证。当您通过验证时 form.controls.email.errors
不存在。
为了克服这个问题:您需要将 errors 替换为 errors?,如下所示:
<div class="invalid-feedback" *ngIf="form.controls.email.errors?.pattern">THIS EMAIL NOT VALID</div>
请试试这个::
<div class="invalid-feedback" *ngIf="form.get('email').hasError('pattern')">THIS EMAIL NOT VALID</div>