如何将项添加到窗体数组

时间:2017-05-01 20:56:55

标签: angular typescript angular2-forms angular-reactive-forms

我在角度2/4应用程序中使用反应式表单,当我尝试将子表单组添加到表单数组时,我在控制台中收到此错误消息:

  

orderitems.component.html:84错误上下文   DebugContext_ {view:Object,nodeIndex:0,nodeDef:Object,elDef:Object,elView:Object}

它指向组件HTML中的这一行:

<tbody formArrayName="items">
   <tr *ngFor="let item of orderForm.controls.items.controls; let i=index" [formGroupName]="i">

错误发生在*ngFor上的第二行。

我正在构建这样的表单:

buildForm(): void {
   this.orderForm = this.fb.group({
   orderNo: '',
   ...
   items : this.fb.array([])

这是添加功能

addItem(item?: any) {
   const itemsControl = <FormArray>this.orderForm.controls['items'];
   itemsControl.push(item != null ? item : this.initItems());
}

在向阵列添加新项目时,为什么会抛出此错误?

有没有更好的方法将项目添加到嵌套表单数组?

0 个答案:

没有答案