我有一个这样的表单组:
this.form = fb.group({ 'teacher': [''],'schools': fb.array([ fb.group({ 'school_name': [''],'school_description': [''],'events': fb.array([ fb.group({ 'event_name': [''] }) ]) }) ]) }); const control = (<FormArray>this.form.controls['schools']).controls[0]['events'];
如何获得嵌套数组控件’事件’?
const control = (<FormArray>this.form.controls['schools']).controls[0]['events'];
解决方法
我建议您查看
nested form array和
nested form group的Angular 2示例,了解如何构建复杂的表单.使用FormGroup,您可以使用.get(name:string)来检索控件.这个例子得到了学校FormArray控件:
this.form.get('schools')
对于FormArray,您可以使用.at(index:number)从数组中检索控件.此示例获取数组中的第一个FormGroup控件:
this.schools.at(0)
总而言之,有更好的(阅读:更可重复,更易读)的方式表达这一点,但这个链将让你从第一所学校的第一个事件:
this.form.get('schools').at(0).get('events')
这是一个有效的plnkr示例.