Angular - setValue () массива formGroups устанавливает последний объект для всего значения formArray - PullRequest
0 голосов
/ 18 октября 2019

У меня есть такая форма с массивом групп форм objform.

this.objform = this.fb.group({
  val: null,
  string: '',
  arr: this.fb.array([null, null, null])
})
this.nestedform = this.fb.group({
  arr: this.fb.array([this.objform, this.objform, this.objform]),
  test1: null,
  test2: ""
})

Я столкнулся с проблемой, что когда я устанавливаю значение (1005 *) this.nestedform, значение arr последний объект в моем массиве снова и снова. Почему это происходит? И я просто делаю какую-то глупую ошибку?

Спасибо

PS У меня есть стек-блиц здесь , если вы хотите увидеть полный пример.

1 Ответ

1 голос
/ 19 октября 2019

вы используете тот же объект в массиве в nestedForm. Используйте функцию, которая возвращает formGroup

  getGroup()
  {
    return this.fb.group({
      val: null,
      str: '',
      arr: this.fb.array([null, null, null])
    })
  }

И используйте при создании формы

this.nestedform = this.fb.group({
  arr: this.fb.array([this.getGroup(), this.getGroup(), this.getGroup()]),
  test1: null,
  test2: ""
})

Итак, у вас есть разные "объекты"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...