首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在现有的formArray上添加新的行?角度

在Angular中,可以使用FormArray来处理动态表单中的数组字段。要在现有的FormArray上添加新的行,可以按照以下步骤进行操作:

  1. 首先,获取到要添加新行的FormArray控件。可以通过在组件中使用get方法来获取,例如:this.myForm.get('myFormArray')
  2. 接下来,创建一个新的FormGroup对象,表示新行的表单控件组。可以使用new FormGroup()来创建。
  3. 在新的FormGroup对象中,为每个字段创建FormControl或者其他表单控件。例如,如果新行有一个名为name的输入字段,可以使用new FormControl()来创建该字段的表单控件。
  4. 将新的FormGroup对象添加到FormArray中,可以使用FormArray的push方法。例如:this.myForm.get('myFormArray').push(newRowFormGroup)

完成以上步骤后,新的行将被添加到现有的FormArray中。

以下是一个示例代码:

代码语言:txt
复制
import { Component } from '@angular/core';
import { FormGroup, FormControl, FormArray } from '@angular/forms';

@Component({
  selector: 'app-my-form',
  template: `
    <form [formGroup]="myForm">
      <div formArrayName="myFormArray">
        <div *ngFor="let row of myFormArray.controls; let i = index" [formGroupName]="i">
          <input formControlName="name" placeholder="Name">
        </div>
      </div>
      <button (click)="addNewRow()">Add Row</button>
    </form>
  `,
})
export class MyFormComponent {
  myForm: FormGroup;

  constructor() {
    this.myForm = new FormGroup({
      myFormArray: new FormArray([]),
    });
  }

  get myFormArray() {
    return this.myForm.get('myFormArray') as FormArray;
  }

  addNewRow() {
    const newRowFormGroup = new FormGroup({
      name: new FormControl(''),
    });

    this.myFormArray.push(newRowFormGroup);
  }
}

在上述示例中,我们创建了一个包含一个FormArray的表单。每个FormArray中的行都由一个FormGroup表示,其中包含一个名为name的输入字段。通过点击"Add Row"按钮,可以动态地添加新的行。

请注意,上述示例中的代码仅用于演示如何在现有的FormArray上添加新的行,实际应用中可能需要根据具体需求进行适当的修改。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的合辑

领券