无法推向阵列离子

时间:2018-08-31 10:00:00

标签: angular ionic-framework ionic2 ionic3

我是离子新手。

我想将数据推送到myForm数组中,但显示错误无法读取未定义的属性“ push”

这是我的表格:

公共myForm:FormGroup;

constructor(){
     this.myForm = this._fb.group({

       docs: this._fb.array([
        this._fb.group({

          docName: [''],
          ref_array: this._fb.array([
            this._fb.group({
              refTextBox: []
            })
          ])

        }),
      ]),
     })

}

我想将元素推送到ref_array

这是我的代码:

    const control2 = <FormArray>this.myForm.controls['docs']
    const control3 = <FormArray>control2.controls['ref_array']

    control3.push(
      this._fb.group({
        refTextBox: []
      })
    )

我在哪里犯错? 请提前帮助和感谢!

3 个答案:

答案 0 :(得分:2)

使用_fb.array代替普通数组[]

refTextBox: this._fb.array([])


let data = <FormArray>this.myForm.get('docs');
      let newdata = <FormArray>data.controls[0].get('ref_array');
      newdata.push(this._fb.group({
        refTextBox: []
      }))

答案 1 :(得分:1)

您必须维护formArray的索引:

参考示例---> DEMO

  

请参阅演示,它将帮助您了解表单数组

 add(index){
    const control =  <FormArray>this.myForm.get('docs')['controls'][index].get('ref_array');
    control.push(
      this._fb.group({
        refTextBox: []
      })
    )
    }

答案 2 :(得分:0)

可能control2.controls['ref_array']返回null。

添加条件

  if(control3 && control3.length >= 0){
   control3.push(
      this._fb.group({
        refTextBox: []
      })
    )
  }