lazalu68
@lazalu68
Salmon

Как привязать динамически созданный input к FormGroup?

В продолжение предыдущего вопроса: существует некая иерархическая структура которая описывает относительно сложную форму, которая в свою очередь может состоять из input'ов, контейнеров и других элементов. Контейнеры могут быть вложенные, то есть структура не фиксированной глубины. Выглядит она упрощенно как-то так:
{
  "type": "HorizontalLayout",
  "margin": false,
  "children": [
    {
      "type": "TextField",
      "id": "code",
      "caption": "Code of product",
      "width": "100px"
    },
    {
      "type": "NumberField",
      "id": "amount",
      "caption": "Amount of pieces"
    }
  ]
}
Из этой структуры я генерирую набор элементов который потом вставляю в нужное место, но тут возникает проблема с привязкой элементов формы к FormGroup. Собственно в этом и вопрос: как привязать input к существующей FormGroup если он был добавлен с помощью createElement/append?
  • Вопрос задан
  • 80 просмотров
Решения вопроса 2
Xuxicheta
@Xuxicheta Куратор тега Angular
инженер
готовые решения не устраивают? ngx-formly например.
пользоваться createElement стоит в последнюю очередь. Можно накостылить свою фабрику элементов, которая при создании инпута будет привязывать их к форм-контролу через события, но это просто означает делать за ангуляр его работу.

Непонятно что у вас за многоуровневые структуры, но их наверно ограниченное число и для них можно сделать свои аксессоры с шаблонами.
Ответ написан
lazalu68
@lazalu68 Автор вопроса
Salmon
В итоге я бросил идею генерировать элементы ввода с помощью document.createElement/append, теперь их генерацией занимается рекурсивно вызываемый сложный шаблон, в котором эти поля и привязаны к экземпляру FormGroup (решение описано тут).
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы