在 Angular 7 中,可以使用嵌套的响应式表单数组来解决问题。下面是一个示例代码,演示了如何创建和处理嵌套的响应式表单数组。
首先,我们需要导入所需的模块和类:
import { Component, OnInit } from '@angular/core';
import { FormGroup, FormBuilder, FormArray, Validators } from '@angular/forms';
然后,我们可以在组件类中创建一个嵌套的响应式表单数组。在 ngOnInit 方法中,我们使用 FormBuilder 创建一个 FormGroup,其中包含一个 FormArray。FormArray 是一个可以包含多个表单控件的数组。
@Component({
selector: 'app-example',
templateUrl: './example.component.html',
styleUrls: ['./example.component.css']
})
export class ExampleComponent implements OnInit {
nestedForm: FormGroup;
constructor(private fb: FormBuilder) { }
ngOnInit() {
this.nestedForm = this.fb.group({
nestedArray: this.fb.array([])
});
}
}
在模板中,我们可以使用 ngFor 指令来遍历嵌套的表单数组,并为每个表单控件创建一个输入框。
此外,我们还可以添加按钮来动态添加和删除表单控件。在组件类中,我们可以使用 FormArray 的方法来添加和删除表单控件。
@Component({
...
})
export class ExampleComponent implements OnInit {
...
get nestedArray(): FormArray {
return this.nestedForm.get('nestedArray') as FormArray;
}
addItem() {
this.nestedArray.push(this.fb.control('', Validators.required));
}
deleteItem(index: number) {
this.nestedArray.removeAt(index);
}
}
最后,我们可以在模板中添加按钮来触发这些方法。
通过以上步骤,我们就可以在 Angular 7 中创建和处理嵌套的响应式表单数组了。