我创建了一个带有2个自定义验证器的Angular2表单,并将其传递给FormControl
:
this.myForm = fb.group({
'CF': ['', [Validators.required, customValidator()], asyncCustomValidator()],
});
这是一个Plunker:https://plnkr.co/edit/pDMKtdC5PqFttfraOPqf(它基于旧的Angular2版本)。
我想达到以下行为:
只有当用户通过required
和customValidator
测试时,asyncCustomValidator
才能启动(并调用后端)。
如何解决此问题?
此外,使用compose
方法和将两个或更多验证器放在同一个数组中有什么区别吗?
答案 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
这对你来说似乎不是一个合适的工具......