현재 각도 2 및 반응 양식을 사용하여 양식을 업데이트, 추가, 삭제 및 편집하고 있습니다. 양식 배열에 입력 컨트롤을 동적으로 추가하기 위해 컨트롤을 폼 작성기 배열로 그룹화했습니다. 이 초기화하려면 항목이없는 빈 폼을 잘 작동합니다.색인 0에서 빈 입력없이 양식 배열 초기화
export class ItemsPage{
collectionForm: FormGroup;
get items(): FormArray { return <FormArray>this.collectionForm.get('items'); }
constructor(public formBuilder: FormBuilder){
this.pageDetails = this.navParams.data;
this.collectionForm = this.formBuilder.group({
items: this.formBuilder.array([this.buildItem()])
});
}
buildItem(item?: string): FormGroup {
return this.formBuilder.group({ item: [item || '', Validators.required] });
}
ionViewDidLoad() {
// Builds a form with pre populated items
forEach(this.pageDetails, value => {
this.items.push(this.buildItem(value));
})
}
}
문제 this.pageDetails
값 목록을 가질 때보기 컨트롤의 목록 index 0
에서 빈 입력을 포함한다는 것이다. 이 바로 보이지 않는다 그러나
this.items.removeAt(0);
으로 constructor
에서 제거 할 수 있습니다. 내가 그 코드가있는 페이지로 이동하면 어쩌면 내가 그러나 그 formBuilder.array
let prebuildItems = forEach(this.pageDetails, value => { // lodash forEach
this.items.push(this.buildItem(value));
});
this.collectionForm = this.formBuilder.group({
items: this.formBuilder.array([prebuildItems])
});
의 배열을 만들 수 있다고 생각을 나는 다음과 같은 오류가 발생합니다 :
Error in ./ItemsPage class ItemsPage - caused by: Cannot read property 'get' of undefined