这个错误通常发生在Angular 8中使用Reactive Forms时,当你尝试通过索引访问表单数组中的控件时。下面是一个解决方法的示例代码:
import { FormGroup, FormBuilder, FormArray } from '@angular/forms';
export class YourComponent {
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; // 将表单数组cast为FormArray类型
}
}
formArrayName
指令和formGroupName
指令来迭代和访问表单数组中的控件:
注意,formArrayName
指令应用于包含表单数组的父元素,而formGroupName
指令应用于迭代的子元素。
这样,你就可以在模板中正确地访问表单数组中的控件,并且不会再收到“无法找到路径为'variable -> 0'的控件”错误。