所以我有一个自定义组件,它是一个多选预输入下拉列表。在我称之为的页面上,我有反应式表单组。我想像使用 mat-form-fields 一样将它绑定到表单控件,但我不确定如何配置组件以允许此操作
big-form-one.component.html
<form [formGroup]="groupOne">
<mat-form-field>
<mat-select formControl="selectControl"></mat-select>
</mat-form-field>
<app-multi-typeahead formControl="howtobindvalues"></app-multi-typeahead>
</form>
在这种情况下,mat-select 绑定到表单控件并且值变得易于管理,验证是统一的并且可以控制事件,使用我使用的自定义组件@Input 和 @Output 来管理值,并在输出函数中执行 formControl.value = child component selected values。
它不干净,我必须在每个实例化预先输入的组件中构建这个自定义的通信集。
有没有办法让自定义组件像表单域一样工作?
答案 0 :(得分:1)
您的组件必须实现 ControlValueAccessor。 这是一篇关于它的好文章。 https://blog.angular-university.io/angular-custom-form-controls/