在角度6中,我们有两种创建表单的方法。
在模型驱动的方法中,我们通过组件中的代码定义了验证器。和 在模板驱动的方法中,我们通过指令和模板本身中的HTML5属性来定义验证器。
有没有办法,在模板驱动的形式中,我们可以从组件代码定义验证。
在一些输入测试更改中,我需要从组件代码定义和更改文本框的验证。
<input type="text" [(ngModel)]="value" (input)="ValueChangeEvent(myvalue)" />
这里,在ValueChangeEvent
方法中,我需要更改文本框的验证。(例如,当用户键入内容时,只需要在文本框中添加最小值验证即可。)< / p>
答案 0 :(得分:1)
使用ControlValueAccessor在Angular中创建自定义表单控件
ControlValueAccessor充当Angular表单API之间的桥梁 和DOM中的本机元素。
在Angular中创建表单时,有时您希望输入的内容不是标准的文本输入,选择或复选框。通过实现ControlValueAccessor接口并将该组件注册为NG_VALUE_ACCESSOR,您可以将自定义表单控件无缝集成到模板驱动或反应形式中,就像它是本机输入一样!
检查以下内容:https://alligator.io/angular/custom-form-control/
customFormValidation的示例:https://stackblitz.com/edit/angular-hhgkje