Angular2:如何按特定顺序应用自定义验证器?

时间:2017-01-27 11:25:23

标签: validation angular angular2-forms custom-validators angular2-formbuilder

我创建了一个带有2个自定义验证器的Angular2表单,并将其传递给FormControl

this.myForm = fb.group({
    'CF': ['', [Validators.required, customValidator()], asyncCustomValidator()],
});

这是一个Plunker:https://plnkr.co/edit/pDMKtdC5PqFttfraOPqf(它基于旧的Angular2版本)。

我想达到以下行为:

只有当用户通过requiredcustomValidator测试时,asyncCustomValidator才能启动(并调用后端)。

如何解决此问题?

此外,使用compose方法和将两个或更多验证器放在同一个数组中有什么区别吗?

1 个答案:

答案 0 :(得分:-1)

为什么不创建第三个验证器,它只是依次调用两个自定义验证器?

function composedValidator(){
  if(doValidationFirst){
     return doValidationSecond();
  }
  failAndReturn();
}

编辑:

这是一篇关于“条件验证”的文章,但IMO对你的情况我会改用上面的方法:

https://scotch.io/tutorials/how-to-implement-conditional-validation-in-angular-2-model-driven-forms

这对你来说似乎不是一个合适的工具......