将可配置的复杂字段绑定到 angular 响应式表单
Binding a configurable complex field to angular reactive forms
所以我有一个自定义组件,它是一个 multiselect typeahead 下拉列表。在我称之为的页面上,我有反应形式的团体。我想将它绑定到表单控件,就像您对 mat-form-fields 所做的那样,但我不确定如何配置组件以允许这样做
大格式-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 和 @输出管理值,并在输出函数中执行 formControl.value = child component selected values.
它不干净,我必须在实例化预输入的每个组件中构建此自定义通信集。
有没有办法让自定义组件像表单域一样工作?
您的组件必须实现 ControlValueAccessor。
这是一篇关于它的好文章。
https://blog.angular-university.io/angular-custom-form-controls/
所以我有一个自定义组件,它是一个 multiselect typeahead 下拉列表。在我称之为的页面上,我有反应形式的团体。我想将它绑定到表单控件,就像您对 mat-form-fields 所做的那样,但我不确定如何配置组件以允许这样做
大格式-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 和 @输出管理值,并在输出函数中执行 formControl.value = child component selected values.
它不干净,我必须在实例化预输入的每个组件中构建此自定义通信集。
有没有办法让自定义组件像表单域一样工作?
您的组件必须实现 ControlValueAccessor。 这是一篇关于它的好文章。 https://blog.angular-university.io/angular-custom-form-controls/