嗨,我有一个表单和自定义验证器。
form.component.ts
this.registerForm = this.fb.group({
password: ['', [FormValidationService.passwordValidator]],
confirm: ['', [FormValidationService.confirmValidator]],
})
validator.ts
static confirmValidator(confirm: FormControl) {
const password = confirm.parent
console.log('confirmValidator - password: ', password)
if (confirm !== password) {
return { 'errMsg': 'Passwords must match.' }
}
return null
}
答案 0 :(得分:0)
如果要一次访问多个控件,则必须在组级别而不是控件级别创建一个验证器。
组级别的验证者可以访问该组内的所有控件,因此适合您的用例。
表单控件的验证器应该只关注该单个控件,仅此而已。
要在单个自定义验证器中评估两个控件,我们应该在一个共同的祖先控件FormGroup中执行验证。这样,我们可以查询FormGroup中的子控件,以便我们可以比较它们的值。