#angular #angular-reactive-forms
Вопрос:
Пользовательский валидатор синхронизации-это
export function passwordsValidator(): ValidatorFn {
return (form: FormGroup): ValidationErrors | null => {
const passwordCtrl = form.get('password');
const repeatPasswordCtrl = form.get('repeatPassword');
if ((passwordCtrl.dirty || repeatPasswordCtrl.dirty) amp;amp;
passwordCtrl.value !== repeatPasswordCtrl.value) {
return {passwordsNotMatch: true};
}
return null;
};
}
определение реактивной формы:
this.registerThirdForm = this.formBuilder.group({
username: ['', [Validators.required, Validators.minLength(3)]],
password: ['', Validators.required, Validators.minLength(4)],
repeatPassword: ['', Validators.required, Validators.minLength(4)]
},
{validators: [passwordsValidator]});
Я полагаю, что эта ошибка вызвана тем, что angular предполагает, что я предоставляю асинхронный валидатор, но, как вы можете видеть, я предоставил его в свойстве валидаторы, а не asyncValidators.
Комментарии:
1. просто оберните свои валидаторы в еще один массив здесь
[Validators.required, Validators.minLength(4)]
. это не работает в вашем примере, потому что AsyncValidator ожидается как 3-й параметр2. Это сработало, спасибо. Это был глупый вопрос!