如何迭代现有的 FormControl 验证器

How to iterate existing FormControl validators

我正在尝试进行自定义验证,我需要在运行时添加新的验证器。这可以使用

来完成
control.setValidators([control.validator, newValidator.toValidatorFn])

其中控件是 AbstractControl 的实例。

好的,到目前为止一切都很好。但是,我想检查我要添加的验证器是否已经添加。我还想稍后找到我添加的验证器以进一步操作它。

所以问题是:如何遍历附加到特定 AbstractControl 实例的验证器?

在我看来,这是不可能的。

在内部,setValidators 正在将验证器(函数)添加到 AbstractControl 上的 public 属性 class 名为 validator

检查 validator 属性(使用 console.log(control.validator) 之类的东西)基本上会向您展示整个验证函数,该函数将 运行 用于控件。

有兴趣可以看看implementation here