Angular 在数据库中使用formgroup进行密码匹配验证

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) => {

我试图使用formbuilder在formgroup中实现一个自定义验证器。一个定制的验证器工作了,但我试图应用到表单的另一个验证器没有工作。下面是我从主组件html和validator.ts中获得的代码

    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下,但在显示正确消息时也遇到问题。