私のリアクティブ フォームには、2 つのパスワード フィールドがあります。カスタムバリデータを作成し、そのバリデータを ts ファイルのフォームグループに割り当てます。コードは以下のとおりです。
this.registerForm = new FormGroup({
title: new FormControl("", Validators.required),
firstName: new FormControl("", Validators.required),
lastName: new FormControl("", Validators.required),
password: new FormControl("", [Validators.required, Validators.minLength(6)]),
confirmPassword: new FormControl("", Validators.required),
acceptTerms: new FormControl("", Validators.required)
},
{
validator: MustMatch('password', 'confirmPassword')
});
バリデータコードと一致する必要があります:
export function MustMatch(controlName: string, matchingControlName: string) {
return (formGroup: FormGroup) => {
const control = formGroup.controls[controlName];
const matchingControl = formGroup.controls[matchingControlName];
if (matchingControl.errors && !matchingControl.errors.mustMatch11111) {
// return if another validator has already found an error on the matchingControl
return;
}
// set error on matchingControl if validation fails
if (control.value !== matchingControl.value) {
matchingControl.setErrors({ mustMatch11111: true });
} else {
matchingControl.setErrors(null);
}
}
}
しかし、MustMatch は以下のエラーを表示しています:
タイプ '{ の引数バリデーター: (formGroup: FormGroup) => void; タイプ 'ValidatorFn | }' のパラメーターに代入できません。ValidatorFn[] | AbstractControlOptions'. オブジェクト リテラルは既知のプロパティのみを指定でき、'validator' はタイプ 'ValidatorFn | ' には存在しません。ValidatorFn[] | AbstractControlOptions'.
66 validator: MustMatch('password', 'confirmPassword')
私はAngularが初めてなので、誰でも問題を解決するのを手伝ってもらえますか?