在Angular中,响应式表单中的FormArray确实无法直接根据索引插入控件。但是,你可以使用以下方法解决这个问题:
import { FormBuilder, FormGroup, FormArray } from '@angular/forms';
export class YourComponent {
form: FormGroup;
constructor(private formBuilder: FormBuilder) {
this.form = this.formBuilder.group({
arrayName: this.formBuilder.array([]) // 初始化为空数组
});
}
}
insertControl(index: number, value: any) {
const control = this.formBuilder.control(value);
const array = this.form.get('arrayName') as FormArray;
array.insert(index, control); // 使用insert方法在指定索引位置插入控件
}
通过这种方式,你可以根据索引插入新的控件到FormArray中。请注意,这里的索引是从0开始的。