Сначала подумайте об использовании вместо этого поля ввода.
Я бы рекомендовал использовать FormBuilder из Angular Forms .
Это поможет вам с упрощенным шаблоном и значительно упростит проверку.
Может выглядеть так:
// TS
contactForm: FormGroup;
constructor() {
this.contactForm = this.formBuilder.group({
email: [
'',
Validators.compose([
Validators.pattern('^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$'),
Validators.required,
])
]
});
FormGroup называется "contactForm" здесь содержит одно поле ввода, называемое "электронная почта". Проверка предназначена для вашей электронной почты.
// Template
<form id="contactForm" [formGroup]="contactForm">
<ion-item lines="none" class="list-item">
<div>
<ion-label position="stacked"
[class.error]="contactForm.controls.email.value != undefined && !contactForm.controls.email.valid">
E-Mail *
</ion-label>
<ion-input id="email" type="email" formControlName="email"></ion-input>
</div>
</ion-item>
</form>
Важная часть здесь - это formControlName и [formGroup] для подключения к вашей проверке ts.
Часть [class.error] добавляет к метке класс «error». Вы также можете использовать это для своего поля ввода.