Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 如何重用底层控件';什么是验证器?_Angular_Typescript - Fatal编程技术网

Angular 如何重用底层控件';什么是验证器?

Angular 如何重用底层控件';什么是验证器?,angular,typescript,Angular,Typescript,我看不到重用底层控件的验证器的好方法。例如,我有一个自定义控件,用于包装MaterialDatePicker,它有四个验证器:min、max、filter和parse。自定义控件可以通过添加额外的按钮、时间选择器或其他东西来扩展datepicker的功能,但很明显,最好使用原始的验证器,而不是复制它们 有人知道一个好方法吗 提前谢谢 我真的不确定你到底想做什么,但验证器最终只是功能。 例如,如果您希望在保留旧控件的同时,向现有控件动态添加验证器,则可以执行以下操作: const fieldCon

我看不到重用底层控件的验证器的好方法。例如,我有一个自定义控件,用于包装MaterialDatePicker,它有四个验证器:min、max、filter和parse。自定义控件可以通过添加额外的按钮、时间选择器或其他东西来扩展datepicker的功能,但很明显,最好使用原始的验证器,而不是复制它们

有人知道一个好方法吗


提前谢谢

我真的不确定你到底想做什么,但验证器最终只是功能。 例如,如果您希望在保留旧控件的同时,向现有控件动态添加验证器,则可以执行以下操作:

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获取所有验证器,并使用它执行任何操作