当我将formcontrol传递给child时,角形表单没有任何值访问错误

时间:2019-04-24 10:33:17

标签: angular input angular-forms

为什么会出现错误“没有指定名称的表单控件没有值访问器”?

我有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: [''] });
}

2 个答案:

答案 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