我有一个角度形式的控件(“第一个”),上面有2个自定义验证器。
验证器之一是异步验证器,该异步验证器转到服务器以检查字段的验证(需要与数据库一起检查)。
this.mainForm.controls['first'].setAsyncValidators([customAsyncValidator()]);
this.mainForm.controls['first'].setValidators([customValidator(this.mainForm.controls['second'])]);
在更新形式不同的字段(“秒”)时,我需要在“第一个”控件上运行customValidator,因为“ customValidator”将根据“第二个”中的值验证值“控制。
在模糊“第二个”控件时,我只验证第一个。
this.mainForm.controls['first'].updateValueAndValidity();
上述解决方案的不好之处在于,它会执行“ firts”控件的所有验证器,包括确实需要一些时间且在这种情况下不需要的异步验证器(仅当“第一个”控件中的值将被更改。)
我想知道的是-有什么方法可以执行一个控件的验证程序,而不是全部?
类似这样的东西:
this.mainForm.controls['first'].updateValueAndValidity([customValidator,...])