解决方法如下:
import { Component, OnInit } from '@angular/core';
import { FormBuilder, FormGroup } from '@angular/forms';
@Component({
selector: 'app-dynamic-form',
templateUrl: './dynamic-form.component.html',
styleUrls: ['./dynamic-form.component.css']
})
export class DynamicFormComponent implements OnInit {
myForm: FormGroup;
formFields = [
{ name: 'firstName', label: 'First Name', type: 'text' },
{ name: 'lastName', label: 'Last Name', type: 'text' },
{ name: 'email', label: 'Email', type: 'email' }
];
constructor(private formBuilder: FormBuilder) { }
ngOnInit() {
this.myForm = this.formBuilder.group({});
this.formFields.forEach(field => {
this.myForm.addControl(field.name, this.formBuilder.control(''));
});
}
}
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { DynamicFormComponent } from './dynamic-form.component';
@NgModule({
declarations: [DynamicFormComponent],
exports: [DynamicFormComponent],
imports: [
CommonModule,
FormsModule,
ReactiveFormsModule
]
})
export class DynamicFormModule { }
这样,动态表单组件就会根据表单配置数组动态生成表单控件。你可以根据需要修改表单配置数组来生成不同的表单。