Angular 角度形式FormarAyname指令用法

Angular 角度形式FormarAyname指令用法,angular,forms,Angular,Forms,官方文档中的示例显示以下代码: @Component({ template: ` <form [formGroup]="form"> <div formArrayName="cities"> <div *ngFor="let city of cities.controls; index as i"> <input [formControlName]="i"> </di

官方文档中的示例显示以下代码:

@Component({
  template: `
    <form [formGroup]="form">
      <div formArrayName="cities">
        <div *ngFor="let city of cities.controls; index as i">
          <input [formControlName]="i">
        </div>
      </div>
    </form>
  `,
})
export class NestedFormArray {
  form = new FormGroup({
    cities: new FormArray([
      new FormControl('SF'),
      new FormControl('NY'),
    ]),
  });

  get cities(): FormArray { return this.form.get('cities') as FormArray; }

}
@组件({
模板:`
`,
})
导出类嵌套格式数组{
表单=新表单组({
城市:新形式([
新表单控件(“SF”),
新FormControl(“NY”),
]),
});
get cities():FormArray{返回this.form.get('cities')作为FormArray;}
}
我不明白为什么我们需要formarayName指令,而代码即使没有它也可以工作

<form [formGroup]="form">
        <div *ngFor="let city of cities.controls; index as i">
          <input [formControlName]="i">
        </div>
 </form>

-说明如何将FormControl(输入)同步到现有的

因此,它对该结构正常工作:

new FormArray([
    new FormControl('SF'),
    new FormControl('NY'),
]);

很抱歉,我不明白你的意思。没有FormArray名称的TLDR将适用于form=FormArray([new FormControl('SF'),new FormControl('NY')])可能我误解了你的意思,请检查此项
new FormGroup({
  cities: new FormArray([
    new FormControl('SF'),
    new FormControl('NY'),
  ]),
});
new FormArray([
    new FormControl('SF'),
    new FormControl('NY'),
]);