且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

当FormArray嵌套在另一个FormArray中时,如何获取FormArrayName?

更新时间:2023-01-07 08:41:39

我也遇到了同样的问题.最后解决了. 首先,我们着眼于主要形式的阵列城市"结构.

I struggling same problem. And finaly solved it. Firstly we looking to main form array 'cities' structure.

图像上的黄色高亮控件是第一个数组控件路径. => cities 绿色高亮控件是第二个数组控件. => sisterCities

Which is the yellow highlited controls at image is first array control path. => cities And green highlited control is second array control. => sisterCities

    <form [formGroup]="form" (ngSubmit)="onSubmit()">
  <div formArrayName="cities">
    <div *ngFor="let city of cities.controls; index as i" [formGroupName]="i">
       <input [formControlName]="name" placeholder="City">
       <div formArrayName="sisterCities"> <!-- this will never work -->
         <div *ngFor="let sisterCity of cities.controls[i]sisterCities.controls; index as j">
           ...
         </div>
       </div>
    </div>
  </div>
  <button>Submit</button>
</form>

访问此第二个嵌套FormArray的正确方法是在插入当前城市索引之后访问第一个控件数组.分别是sisterCitiescontrol.

Proper way to access this second nested FormArray is accessing first control array after insert current cities index. And respectively sisterCities,control.

let sisterCity of cities.controls[i].sisterCities.controls