Я работаю, чтобы аутентифицировать пользователя с помощью Angular Material.В настоящее время я пытаюсь отобразить правильную ошибку mat, когда пароль подтверждения не соответствует первому введенному pw.
Вот мой HTML:
<mat-form-field hintLabel="Minimum 8 Characters" class="">
<mat-label>Password</mat-label>
<input
matInput
#input
type="password"
formControlName="password">
<mat-hint align="end">{{input.value?.length || 0}}/8</mat-hint>
</mat-form-field>
<mat-form-field>
<mat-label>Confirm</mat-label>
<input
matInput
required
type="password"
#confirm
formControlName="confirmPassword">
<mat-error *ngIf="form.get('confirmPassword').invalid || confirmPasswordMismatch">Password does not match</mat-error>
</mat-form-field>
Ошибка отображается, как только пользователь сфокусировался на подтверждении пароля, и не фокусируется, ничего не вводя.Как только пользователь вводит что-либо, ошибка исчезает, даже если подтверждение не совпадает с паролем.
Вот мой файл TS:
public get confirmPasswordMismatch() {
return (this.form.get('password').dirty || this.form.get('confirmPassword').dirty) && this.form.hasError('confirmedDoesNotMatch');
}
this.form = new FormGroup({
userName: new FormControl(null, [Validators.required]),
fullName: new FormControl(null, [Validators.required]),
email: new FormControl(null, [Validators.required, Validators.pattern(this.EMAIL_REGEX)]),
password: new FormControl(null),
confirmPassword: new FormControl(null, ),
}, (form: FormGroup) => passwordValidator.validate(form));
Желаемый эффект состоит в том, что ошибка показываеткогда пользователь ввел текст во ввод pw, когда подтверждение pw пусто и показать ошибку, когда оба текста, но подтверждение не совпадает с pw.