![](/img/trans.png)
[英]formControlName must be used with a parent formGroup directive
[英]FormControlName must be used with a parent FormGroup directive when FormGroup is passed to child component
父組件
<form [formGroup]="User">
<app-radioButton [group]="user"></app-radiobuton>
</form>
在無線電組件 html
<mat-radio-button [formControlName]="name" > <mat-radio-button>
無線電組件的 in.ts
export class RadioComponent{
@Input() group: FormGroup;
}
如上給出錯誤。 不知道我在做什么錯。
之所以失敗,是因為 Angular 正在等待任何父子元素上的 FormGroupDirective。 所以:
在子組件中請聲明:
@Component({
selector: 'child',
templateUrl: './child.component.html',
viewProviders: [{ provide: ControlContainer, useExisting: FormGroupDirective }]
})
或者
您可以在子組件中使用 formControl:
<mat-radio-button [formControl]="name" > <mat-radio-button>
在您的代碼中有[formGroup]="User"
並傳遞給子組件[group]="user"
。 為什么提供不同的數據: User
和user
?
如果您想按照您的方式使用您的FormGroup
,只需將您的表單組包裝為子組件中的子控件:
<ng-container [formGroup]="group">
<mat-radio-button [formControlName]="name"><mat-radio-button>
</ng-container>
另一種方法是制作更合適的組件結構:
<form [formGroup]="User">
<app-radioButton [formControlName]="name"></app-radiobuton>
</form>
並在子組件中注入控制。 您可以在此處查看如何操作
背后的主要原因是您使用的是表單標簽之外的表單控制字段
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.