在Angular中,当使用FormArray时,如果未为控件指定名称属性,可能会出现“无法找到未指定名称属性的控件”错误。以下是解决此问题的一些方法:
方法1:为控件指定名称属性 在HTML模板中,确保为FormArray中的每个控件指定一个名称属性。例如:
方法2:使用FormBuilder来创建控件 使用FormBuilder可以更方便地创建表单控件,并确保每个控件都具有名称属性。例如:
import { Component, OnInit } from '@angular/core';
import { FormBuilder, FormGroup, FormArray } from '@angular/forms';
@Component({
selector: 'app-my-component',
templateUrl: './my-component.component.html',
styleUrls: ['./my-component.component.css']
})
export class MyComponent implements OnInit {
myForm: FormGroup;
constructor(private formBuilder: FormBuilder) { }
ngOnInit() {
this.myForm = this.formBuilder.group({
myArray: this.formBuilder.array([])
});
this.addControl();
}
addControl() {
const control = this.formBuilder.control('');
(this.myForm.get('myArray') as FormArray).push(control);
}
}
通过使用FormBuilder创建控件,每个控件都会自动获得名称属性。
这些方法可以解决“无法找到未指定名称属性的控件”错误,并确保在使用FormArray时正确命名控件。