在Angular中,当使用动态表单数组时,有时候可能会遇到无法找到控件的问题。这通常是由于动态生成的表单控件无法被正确地绑定所导致的。下面是一个解决方法的示例代码:
import { Component } from '@angular/core';
import { FormBuilder, FormGroup, FormArray } from '@angular/forms';
@Component({
selector: 'app-my-component',
template: `
`
})
export class MyComponent {
myForm: FormGroup;
constructor(private fb: FormBuilder) {
this.myForm = this.fb.group({
myArray: this.fb.array([])
});
}
get myArray(): FormArray {
return this.myForm.get('myArray') as FormArray;
}
addItem(): void {
this.myArray.push(this.fb.control(''));
}
}
在模板中使用formArrayName
指令绑定表单数组,并使用*ngFor
指令遍历表单数组中的控件。
在组件类中,通过get
方法获取表单数组控件。
在addItem
方法中,使用push
方法向表单数组中添加新的控件。
这样,就可以动态地向表单数组中添加控件,并且能够正确地找到这些控件。