Angular2使用* ngFor将字符串数组绑定到反应形式组

时间:2019-02-06 16:24:35

标签: angular angular-reactive-forms

这是我的数据结构

class myObject
{
    name: string;
    notes: string[];
}

我旨在创建一个反应式表单组来绑定名称和所有注释(每个注释都有一个单独的控件)。

this.formGroup = this.formBuilder.group
({
    name: new FormControl(getName()), //returns a string
    notes: this.formBuilder.array(getNotes()) //returns a string array
});

<div [formGroup]="formGroup">
    <input formControlName="name">
    <div formArrayName="notes">
        <div *ngFor="let note of formGroup.controls.notes.controls; let i=index">
            <div formGroupName="{{ i }}">
                <input formControlName="{{ i }}"> // bind array element to formcontrol
             </div>
        </div>
    </div>
</div>

我如何将“无属性”字符串数组中的每个字符串绑定到FormControl? 我遇到了:错误错误:找不到路径为“注释-> 0-> 0”的控件

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

使用以下方法实现了上述目标:

<div [formGroup]="formGroup">
    <input formControlName="name">
    <div formArrayName="notes">
        <div *ngFor="let note of formGroup.controls.notes.controls; let i=index">
            <div formGroupName="{{ i }}"> //remove this tag
                <input formControlName="{{ i }}">
             </div>
        </div>
    </div>
</div>

只需删除'div formGroupName =“ {{i}}”“标记,因为它不是嵌套的数据结构。