我没有找到重用底层控件验证器的好方法。例如,我有一个自定义控件,它包含 Material 日期选择器,它有四个验证器:最小值、最大值、过滤器和解析器。自定义控件可以通过添加额外的按钮、时间选择器或其他东西来扩展日期选择器的功能,但很明显,使用原始验证器而不是复制它们会更好。
有人知道好的方法吗?
提前致谢!
最佳答案
我真的不确定你到底想做什么,但验证器最终只是功能。 例如,如果您想在保留旧控件的同时动态地向现有控件添加验证器,您可以这样做:
const fieldControl = myForm.get(fieldPath); // see FormGroup.get(path)
// adding new validator while keeping old ones with fieldControl.validator since setValidators() resets validators
fieldControl.setValidators([validator, fieldControl.validator]);
fieldControl.updateValueAndValidity();
这意味着您可以使用 fieldControl.validator 获取所有验证器,并用它做任何您想做的事情。
关于angular - 如何重用底层控件的验证器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55025269/