Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 如何调用formGroup 2的方法验证?_Angular - Fatal编程技术网

Angular 如何调用formGroup 2的方法验证?

Angular 如何调用formGroup 2的方法验证?,angular,Angular,我有以下表格: this.changePasswordForm = this.formBuilder.group({ 'passwordNew': ['', ValidationService.passwordValidator], matchingPasswords('passwordNew', 'passwordNewConfirmation')(this)]] }); 以及我尝试调用的自定义验证函数: export function matchingPasswords(pas

我有以下表格:

this.changePasswordForm = this.formBuilder.group({
      'passwordNew': ['', ValidationService.passwordValidator], matchingPasswords('passwordNew', 'passwordNewConfirmation')(this)]]
});
以及我尝试调用的自定义验证函数:

export function matchingPasswords(passwordKey: string, confirmPasswordKey: string) {
  return (group: FormGroup): {
    [key: string]: any
  } => {
    let password = group.controls[passwordKey];
    let confirmPassword = group.controls[confirmPasswordKey];

    if (password.value !== confirmPassword.value) {
      return {
        mismatchedPasswords: true
      };
    }
  }
}
如何在
匹配密码中传递当前表单?我试图使用
这个

'passwordNewConfirmation')(this)

ValidatorFn函数接受当前控件作为参数。您可以使用它访问表单组

导出接口验证程序fn{
(c:AbstractControl):ValidationErrors | null;
}
您的函数如下所示:

导出函数匹配密码(passwordKey:string,confirmPasswordKey:string){
返回(控件:AbstractControl):{
[键:字符串]:任何
} => {
如果(!control.parent){
返回null;
}
设group=control.parent;
让password=group.controls[passwordKey];
让confirmPassword=group.controls[confirmPasswordKey];
if(password.value!==confirmPassword.value){
返回{
错配密码:true
};
}
}
}
注册时,
不需要此

this.changePasswordForm=this.formBuilder.group({
“passwordNew”:[“”,[ValidationService.passwordValidator,匹配密码('passwordNew','passwordNewConfirmation')]]
});

导入中没有
AbstractFormControl
,只有
AbstractControl
对不起,应该是
AbstractControl
。已更新。我收到此错误:
error错误:预期验证器返回承诺或可观察。