Angular中的FormArray是一个用于处理动态表单控件的类。它允许我们在一个FormGroup中动态地添加和删除表单控件。
FormArray可以用于以下场景:
在Angular中,使用FormArray需要以下步骤:
以下是一个示例代码,演示了如何使用FormArray在FormGroup中加载数据:
import { Component } from '@angular/core';
import { FormBuilder, FormGroup, FormArray } from '@angular/forms';
@Component({
selector: 'app-form',
template: `
<form [formGroup]="myForm" (ngSubmit)="onSubmit()">
<div formArrayName="items">
<div *ngFor="let item of items.controls; let i = index">
<input [formControlName]="i" placeholder="Item {{ i + 1 }}">
</div>
</div>
<button type="submit">Submit</button>
</form>
`,
})
export class FormComponent {
myForm: FormGroup;
constructor(private fb: FormBuilder) {
this.myForm = this.fb.group({
items: this.fb.array([]),
});
}
get items() {
return this.myForm.get('items') as FormArray;
}
onSubmit() {
console.log(this.myForm.value);
}
loadData() {
// 假设从服务器获取到的数据为 ['Apple', 'Banana', 'Orange']
const data = ['Apple', 'Banana', 'Orange'];
// 清空原有的表单控件
while (this.items.length !== 0) {
this.items.removeAt(0);
}
// 根据数据动态添加表单控件
data.forEach((item) => {
this.items.push(this.fb.control(item));
});
}
}
在上述示例中,我们创建了一个名为myForm的FormGroup,并在其中创建了一个名为items的FormArray。在模板中,我们使用*ngFor指令循环显示items中的表单控件,并使用formControlName绑定每个表单控件的值。
要加载数据,可以调用loadData方法,该方法会清空原有的表单控件,并根据从服务器获取到的数据动态地添加新的表单控件。
腾讯云相关产品和产品介绍链接地址:
请注意,以上链接仅供参考,具体产品选择应根据实际需求进行评估。
领取专属 10元无门槛券
手把手带您无忧上云