尝试在Angular 2中创建嵌套动态表单。
表单骨架
this.myForm= this.formBuilder.group({
programmes: this.formBuilder.array([this.initProgramme(),]),
});
initProgramme() {
return this.formBuilder.group({
tickets: this.formBuilder.array([this.initTicket(),])
});
}
initTicket() {
return this.formBuilder.group({
field1:''
});
}
使用以下功能动态添加程序工作: -
addProgToForm(){
const control = <FormArray>this.myForm.get('programmes');
control.push(this.initProgramme());
}
将票证添加到程序 THROWS ERROR
addTicket(programme: any) {
const control = (<FormArray>this.myForm.get('programmes')).get(programme); // THROWS ERROR HERE
(<FormArray>control.get('tickets')).push(this.initTicket());
}
在 .get(程序),它表示 path.split不是函数
PS - 程序&#39; get(program)&#39;是要添加动态故障单的程序表单阵列的索引。它是从* ngFor中正确检索的。示例: - 添加第一个程序的索引0。
答案 0 :(得分:4)
尝试通过字符串索引获取控制权: .get(programme.toString())
PageClass
答案 1 :(得分:0)
地址:FormArray;
this.DynForm = formBuild.group({ 名字:&#39;克里希纳&#39;, lastName:&#39;&#39;, 地址:this.address1(), 性别:&#39;男性&#39; });
=========================
@try {
// code that may throw exception
}
@catch (NSException * e) {
// show alert
}
@finally {
}
请尝试这一步=====!在angular2最终版本中
答案 2 :(得分:0)