我想从问题库构建一个动态表单,就像angular2 cookbook中的动态表单一样。所以我有一个QuestionComponent:
<div [formGroup]="form">
<ul *ngIf="question.multi" [formArrayName]="question.key">
<li *ngFor="let control of form.get(question.key).controls; let lix=index">
<div>
<app-text-box [controlName]="lix"></app-text-box>
</div>
</li>
</ul>
<div *ngIf="!question.multi">
<app-text-box [controlName]="question.key"></app-text-box>
</div>
</div>
基于question.multi
,有一个FormControl或FormArray。 Form-Input位于TextBoxComponent中:
<input class="form-control"
[formControlName]="controlName"
[id]="controlName" type="text">
但这不起作用:
./TextBoxComponent类中的错误TextBoxComponent - 内联 模板:0:28引起的:formControlName必须与父级一起使用 formGroup
如何将有关FormGroup的信息导入组件?
我这样试过: QuestionComponent:
<div [formGroup]="form" class="col-md-10" >
<ul *ngIf="question.multi" [formArrayName]="question.key" class="list-group">
<li *ngFor="let control of form.get(question.key).controls; let lix=index">
<div>
<app-text-box [form]="form" [arrayName]="question.key" [controlName]="lix"></app-text-box>
</div>
</li>
</ul>
<div *ngIf="!question.multi">
<app-text-box [form]="form" [controlName]="question.key"></app-text-box>
</div>
</div>
TextBoxComponent:
<div [formGroup]="form">
<div [formArrayName]="arrayName">
<input class="form-control" [formControlName]="controlName" [id]="controlName" type="text">
</div>
</div>
但是当没有FormArray时会产生错误。