将可配置的复杂字段绑定到角度反应形式

时间:2021-04-29 21:01:39

标签: angular model-view-controller webforms

所以我有一个自定义组件,它是一个多选预输入下拉列表。在我称之为的页面上,我有反应式表单组。我想像使用 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。

它不干净,我必须在每个实例化预先输入的组件中构建这个自定义的通信集。

有没有办法让自定义组件像表单域一样工作?

1 个答案:

答案 0 :(得分:1)

您的组件必须实现 ControlValueAccessor。 这是一篇关于它的好文章。 https://blog.angular-university.io/angular-custom-form-controls/