![](/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.