Невозможно нажать на массив ионных - PullRequest
0 голосов
/ 31 августа 2018

Я новичок в ионике.

Я хочу отправить данные в мой массив myForm, но он показывает ошибку Невозможно прочитать свойство 'push' из неопределенного

Вот моя форма:

public 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 голосов
/ 31 августа 2018

вероятно control2.controls['ref_array'] возвращает ноль.

добавить, если условие

  if(control3 && control3.length >= 0){
   control3.push(
      this._fb.group({
        refTextBox: []
      })
    )
  }
0 голосов
/ 31 августа 2018

Вы должны поддерживать индекс для formArray:

Справочный пример ---> DEMO

Пожалуйста, ознакомьтесь с демонстрацией, это поможет вам понять массив форм

 add(index){
    const control =  <FormArray>this.myForm.get('docs')['controls'][index].get('ref_array');
    control.push(
      this._fb.group({
        refTextBox: []
      })
    )
    }
0 голосов
/ 31 августа 2018

используйте _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: []
      }))
...