Ale*_*fan 9 angular2-forms angular
我正在尝试构建一个数据驱动的表单,输入来自另一个组件,如下所示:
<form [formGroup]="signupForm" (ngSubmit)="onSubmit()">
<app-form-group [name]="name"></app-form-group>
<app-form-group [name]="email"></app-form-group>
<app-form-group [name]="other"></app-form-group>
</form>
Run Code Online (Sandbox Code Playgroud)
该app-form-group组件将如下所示:
<div class="form-group">
<label class="col-md-2 control-label">{{Name}}</label>
<div class="col-md-9">
<input class="form-control" [name]="name" [formControlName]="formCtrlName">
</div>
Run Code Online (Sandbox Code Playgroud)
问题是formControlName需要一个formGroup指令,因此我得到这个错误:
Error : Error in ./FormGroupComponent class FormGroupComponent - inline template:3:58 caused by: formControlName must be used with a parent formGroup directive.You'll want to add a formGroup
directive and pass it an existing FormGroup instance (you can create one in your class).
Run Code Online (Sandbox Code Playgroud)
有什么方法可以解决这个问题吗?
小智 6
您可以使用 @Input 属性将引用获取到子组件中:
app-form-group.ts:
@Input('group')
public signupForm: FormGroup;
Run Code Online (Sandbox Code Playgroud)
应用程序.html:
<form [formGroup]="signupForm" (ngSubmit)="onSubmit()">
<app-form-group [name]="name" [group]="signupForm"></app-form-group>
<app-form-group [name]="name" [group]="signupForm"></app-form-group>
<app-form-group [name]="name" [group]="signupForm"></app-form-group>
</form>
Run Code Online (Sandbox Code Playgroud)
app-form-group.html:
<div class="form-group" [formGroup]="signupForm">
<label class="col-md-2 control-label">{{Name}}</label>
<div class="col-md-9">
<input class="form-control" [name]="name" [formControlName]="formCtrlName">
</div>
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请查看本教程:https : //scotch.io/tutorials/how-to-build-nested-model-driven-forms-in-angular-2
您应该[formGroup]="signupForm"在app-form-groupComponent中使用FormGroup .您可以使用此代码:
<div class="form-group" [formGroup]="signupForm">
<label class="col-md-2 control-label">{{Name}}</label>
<div class="col-md-9">
<input class="form-control" [name]="name" [formControlName]="formCtrlName">
</div>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10795 次 |
| 最近记录: |