3

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

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

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

我想达到以下行为:

只有当用户通过requiredandcustomValidator测试时,asyncCustomValidator才能开始(并调用后端)。

如何获得这种行为?

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

4

1 回答 1

-1

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

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

编辑:

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

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

这似乎不是适合您的工具...

于 2017-01-27T11:32:52.883 回答