Angular6 是否可以创建一个自定义formcontrol验证函数,该函数对反应式表单具有依赖关系

Angular6 是否可以创建一个自定义formcontrol验证函数,该函数对反应式表单具有依赖关系,angular6,Angular6,我有一个反应式表单,其中有“密码”和“验证密码”字段。我想为“验证密码”字段创建自定义验证函数。它应该检查“验证密码”的值是否与“密码”相同。是否可以创建这样的验证函数并在创建表单控件时使用它 'formcontrol:[null,myValidationFunction]' 据我所知,验证函数接受“FormControl”并返回一个对象。没有办法向它传递另一个论点 我已经读到我可以创建一个“指令”,但示例将其用于“模板”驱动的表单 实现这一点的一种方法是将密码和verifyPassword放入

我有一个反应式表单,其中有“密码”和“验证密码”字段。我想为“验证密码”字段创建自定义验证函数。它应该检查“验证密码”的值是否与“密码”相同。是否可以创建这样的验证函数并在创建表单控件时使用它

'formcontrol:[null,myValidationFunction]'

据我所知,验证函数接受“FormControl”并返回一个对象。没有办法向它传递另一个论点


我已经读到我可以创建一个“指令”,但示例将其用于“模板”驱动的表单

实现这一点的一种方法是将密码和verifyPassword放入一个单独的数据库中。然后可以将此formGroup传递给自定义验证函数,该函数将AbstractControl类型作为formGroup扩展的arugument。所以你可以这样做:

template.html
谢谢看起来它会工作,但目前,我正努力让嵌套表单工作。你能看看你的解决方案吗。我无法解决嵌套表单问题,但由于我有顶级表单,我在顶级表单中添加了
passwordValidator
。我将尝试解决嵌套表单问题,但这与此无关。谢谢
<form [formGroup]="main">
  <!-- Other FormControls -->
  <div formGroupName="passwordGroup">
    <!-- input element for password FormControl -->
    <!-- input element for verifyPassword FormControl -->
  </div>
</form>
function passwordValidator(c: AbstractControl) : {[key: string] : boolean} | null {
          let password = c.get('password'); 
          let verifyPassword = c.get('verifyPassword'); 
          if(password.value === verifyPassword.value)
            return null;
          else
            return {'match' : true};    
        }

ngOnInit() {
        this.main = this.fb.group({
            otherFormControls : [''],
            passwordGroup: this.fb.group({
            password: ['',[Validators.required],
            verifyPassword: ['',Validators.required]
            },{validator : passwordValidator})
});}