私はよく理解していると思ったフォームコントロールで作業しています。今私はコントロールを作成し、それぞれのバリデータを割り当てる関数を持っています。角2のフォーム:FormControlエラーにアクセスできない
this.password1:FormControl
とthis.password2:FormControl
の場合、errors:{required: true, pattern:true}
のようなエラーオブジェクトがあるはずです。ただし、pattern
プロパティはどちらのエラーオブジェクトにも表示されません。さらにValidators.minLength(8)
をthis.password2
FormControlに追加して、動作していて、minLengthエラープロパティも表示されないかどうかを確認しました。裏返しは 'this.email'にerrors: {required: true, email: true}
で正しいエラーがあります。
注::フォームの有効性をテストするとき。それは、パターンチェックと最小長さチェックを行います。私は、作成されるはずのエラープロパティにアクセスすることはできません。私がconsole.logに書いたFormContrilのエラープロパティーはerrors:{required: true}
です。
エラーのプロパティが作成されていない理由について、助けてください。ハッピー感謝祭!
ngOnInit() {
this.title.setTitle(this.pageTitle);
this.createFormControls();
this.createForm();
}
createFormControls(): void {
const mediumRegex = new RegExp('(((?=.*[a-z])(?=.*[A-Z]))|((?=.*[a-z])(?=.*[0-9]))|((?=.*[A-Z])(?=.*[0-9])))(?=.{6,})');
this.email = new FormControl('', Validators.compose([Validators.required, Validators.email]));
this.firstName = new FormControl('', Validators.compose([Validators.required]));
this.lastName = new FormControl('', Validators.compose([Validators.required]));
this.password1 = new FormControl('', Validators.compose([Validators.required, Validators.pattern(mediumRegex)]));
this.password2 = new FormControl('', Validators.compose([Validators.minLength(8), Validators.required, Validators.pattern(mediumRegex)]));
console.log(this.email);
}
matchPassword(AC: AbstractControl): any {
const password1 = AC.get('password1').value; // to get value in input tag
const password2 = AC.get('password2').value; // to get value in input tag
if (password1 !== password2) {
// console.log('false');
AC.get('password2').setErrors({'MatchPassword': true});
// console.log(AC);
// console.log(this.registrationForm);
} else {
// console.log('true');
return null;
}
}
createForm(): void {
this.registrationForm = this.fb.group({
email: this.email,
firstName: this.firstName,
lastName: this.lastName,
password1: this.password1,
password2: this.password2,
}, {
validator: this.matchPassword // your validation method
});
}
うん、それ働いた!それをクリアしていただきありがとうございます。プランナーは大きな時間を助けました。 – mikey8989