如何从父FormGroup获得价值?

时间:2018-10-08 20:31:45

标签: angular

嗨,我有一个表单和自定义验证器。

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
  }

我需要从父FormGroup获取密码值。 enter image description here

1 个答案:

答案 0 :(得分:0)

如果要一次访问多个控件,则必须在组级别而不是控件级别创建一个验证器。

组级别的验证者可以访问该组内的所有控件,因此适合您的用例。

表单控件的验证器应该只关注该单个控件,仅此而已。

Angular docs

  

要在单个自定义验证器中评估两个控件,我们应该在一个共同的祖先控件FormGroup中执行验证。这样,我们可以查询FormGroup中的子控件,以便我们可以比较它们的值。