我正在使用 Angular2 反应式表单(这是一个简历表单),表单上有一些字段,然后是qualifications
我需要将数组传递给的组件(以便使用循环我可以显示用户的资格)。
这就是我将数据传递给组件的方式qualifications
<ion-list-header> Qualification & Education </ion-list-header>
<div formArrayName="qualifications">
<div *ngFor="let qualification of profileForm.controls.qualifications.controls; let i=index"
class="panel panel-default">
<qualifications [group]="profileForm.controls.qualifications.controls[i]"></qualifications>
</div>
</div>
这是一个qualifications
组件的 html
<div [formGroup]="qualificationForm">
<ion-item padding>
<ion-label stacked>Qualification</ion-label>
<ion-input type="text" formControlName="position"></ion-input>
<small [hidden]="qualificationForm.controls.position.valid" class="text-danger">
Qualification is required
</small>
</ion-item>
<ion-item padding>
<ion-label stacked>Institution</ion-label>
<ion-input type="text" formControlName="location"></ion-input>
</ion-item>
<ion-item padding>
<ion-label stacked>Date</ion-label>
<ion-input type="date" formControlName="at_date"></ion-input>
</ion-item>
</div>
这就是限定数组的样子
0:{id: 1744687, location: "Singapore", position: "B Tech", at_date: "09/2014"}
1:{id: 1762435, location: "Singapore", position: "B Tech 2", at_date: "11/2014"}
2:{id: 1802837, location: "Singapore", position: "B Tech 3", at_date: "12/2016"}
我无法理解如何将对象数组传递给该组件,以便它可以在循环中显示资格
在ngOnInit
我调用的addQualification
函数如下
addQualification() {
const control = <FormArray>this.profileForm.controls['qualifications'];
const addrCtrl = this.initAddress();
control.push(addrCtrl);
}
initAddress() {
return this.formBuilder.group({
position: ['', Validators.required],
location: [''],
at_date: ['']
});
}
我遇到的问题是表单只显示数组的第一个对象并且没有循环