3

我正在使用 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: ['']
    });
}

我遇到的问题是表单只显示数组的第一个对象并且没有循环

4

0 回答 0