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错误:预期验证器返回承诺或可观察。