Я знаю, что этот вопрос задавали много раз, но я все еще не могу понять, как заставить его работать ... Я теряю веру, вы не могли бы помочь?
Пытаюсь сделать простая проверка пароля "подтверждения" в моей форме регистрации:
app.ts
this.signupForm = this.formBuilder.group({
emailInputControl: new FormControl(null, {
updateOn: "blur",
validators: [
Validators.required,
Validators.email,
Validators.pattern("^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+.[a-zA-Z0-9-.]+$"),
],
}),
passwordInputControl: new FormControl(null, {
updateOn: "blur",
validators: [Validators.required, Validators.minLength(8)],
}),
passwordConfirmInputControl: new FormControl(null, {
updateOn: "blur",
validators: [Validators.required],
}),
validator: this.checkPassword(
"passwordInputControl",
"passwordConfirmInputControl"
),
});
private checkPassword(password: string, passwordConfirm: string) {
return (formGroup: FormGroup) => {
const passwordInput = formGroup.controls[password];
const passwordConfirmationInput = formGroup.controls[passwordConfirm];
if (passwordInput.value !== passwordConfirmationInput.value) {
return passwordConfirmationInput.setErrors({ passwordMismatch: true });
} else {
return passwordConfirmationInput.setErrors(null);
}
};
}
тогда мой html файл вполне базовый c:
прим. html
<div *ngIf="signupForm.hasError('passwordMismatch') && signupForm.get('passwordConfirmInputControl').touched">
<p>
Pwd don't match
</p>
</div>