为什么会出现错误“没有指定名称的表单控件没有值访问器”?
我有edit-component
:
html
<mat-form-field>
<input [formControl]="formControl">
</mat-form-field>
ts:
@Input formControl;
在父组件(主编辑器)中:
html:
<edit-component [formControl]="data">
ts:
get data() {
return this.form.get('data');
}
constructor(private fb: FormBuilder) {
this.form = this.fb.group({ data: [''] });
}
答案 0 :(得分:0)
这是因为无法在[formControl]
上设置edit-component
。如果将无功输入添加到组件,则需要实现NG_VALUE_ACCESSOR
。
用<edit-component [formControl]="data">
和
<edit-component [myCustomFormControl]="data">
<mat-form-field>
<input [formControl]="myCustomFormControl">
</mat-form-field>
答案 1 :(得分:0)
在@Input()
装饰器中,我们无法提供formContolName
作为String。我们可以直接提供一个formControl
,但请记住这个[AnyOtherName]
而不是[formControl]
。
<form [formGroup]="form">
<app-test [control]="form.controls.data"></app-test>
</form>
在链接上检查:
https://stackblitz.com/edit/angular-9kpk3i?file=src%2Fapp%2Ftest%2Ftest.component.html