在Angular中,可以使用Reactive Forms来实现嵌套动态表单。下面是一个示例代码,演示了如何创建一个嵌套动态表单:
首先,在组件的HTML文件中,使用formGroup
指令创建一个表单组,并使用formArrayName
指令指定表单数组的名称。然后,使用*ngFor
指令遍历表单数组,并在循环内部创建每个表单项的控件。
然后,在组件的TypeScript文件中,创建一个FormBuilder
实例,并使用它来创建表单模型,并初始化表单数据。
import { Component, OnInit } from '@angular/core';
import { FormBuilder, FormGroup, FormArray, FormControl } from '@angular/forms';
@Component({
selector: 'app-my-component',
templateUrl: './my-component.component.html',
styleUrls: ['./my-component.component.css']
})
export class MyComponentComponent implements OnInit {
myForm: FormGroup;
constructor(private fb: FormBuilder) { }
ngOnInit() {
this.myForm = this.fb.group({
items: this.fb.array([])
});
}
get items() {
return this.myForm.get('items') as FormArray;
}
addItem() {
const item = this.fb.group({
name: [],
quantity: []
});
this.items.push(item);
}
}
在上面的示例中,我们使用FormBuilder
的group
和array
方法来创建表单组和表单数组。get
方法用于获取表单数组的引用,push
方法用于向表单数组中添加新项。
通过上述代码,我们可以实现一个嵌套动态表单,用户可以点击"Add Item"按钮来动态添加新的表单项。每个表单项都包含一个名称和数量的输入框。
上一篇:Angular嵌套订阅调用
下一篇:Angular嵌套动态组件