Angular 在数据库中使用formgroup进行密码匹配验证
我试图使用formbuilder在formgroup中实现一个自定义验证器。一个定制的验证器工作了,但我试图应用到表单的另一个验证器没有工作。下面是我从主组件html和validator.ts中获得的代码Angular 在数据库中使用formgroup进行密码匹配验证,angular,validation,formbuilder,formgroups,Angular,Validation,Formbuilder,Formgroups,我试图使用formbuilder在formgroup中实现一个自定义验证器。一个定制的验证器工作了,但我试图应用到表单的另一个验证器没有工作。下面是我从主组件html和validator.ts中获得的代码 let newPassword = control.get('newPassword'); let confirmPassword = control.get('newPassword'); return new Promise((resolve) => {
let newPassword = control.get('newPassword');
let confirmPassword = control.get('newPassword');
return new Promise((resolve) => {
if(newPassword.value !== confirmPassword.value)
resolve ({ passwordShouldMatch: true });
else resolve(null);
});
};
更改密码组件.ts
form: FormGroup;
constructor(fb: FormBuilder) {
this.form = fb.group({
oldPassword:['',
Validators.required,
PasswordValidators.validOldPassword
],
newPassword:['', Validators.required],
confirmPassword:['', Validators.required]
}, {
validator: PasswordValidators.passwordShouldMatch
});
}
change-password.html
<div *ngIf="confirmPassword.touched && confirmPassword.invalid" class="alert alert-danger">
<div *ngIf="confirmPassword.errors.required"> Confirm Password is required.</div>
<div *ngIf="form.invalid && form.errors.passwordShouldMatch" class="alert alert-danger">Passwords don't match.</div>
</div>
没有错误,但是PasswordShouldMatch验证程序未被识别,并且fb.group
在构造函数中划掉了group
单词
我还尝试使用FormArray,但也无法使其工作。我尝试将验证置于confirmPassword下,但在显示正确消息时也遇到问题。