Использование ComponentFactoryResolver с реактивными формами - PullRequest
2 голосов
/ 03 мая 2019

Я работаю над «мастером» компонента формы, который настраивает форму, которую пользователь должен заполнять в разделах. Сами разделы определяются динамически. Мастер создает реактивную форму, задает директивы formGroup и formGroupName, а затем использует ComponentFactoryResolver для динамической генерации компонента, отвечающего за отображение входных данных для каждого раздела формы.

Я заново создал базовую демонстрацию здесь: https://stackblitz.com/edit/angular-issue-repro2-pdtlnj

Здесь есть два вопроса:

Единственный способ заставить это работать в приложении - это указать viewProvider в динамически сгенерированных компонентах. Это не идеально, так как это дополнительные издержки, которые будут повторяться - возможно ли указать этих провайдеров на хосте, где генерируется компонент? Я пытался добавить ControlContainer провайдеров к Injector, который он создает, но ничего не помогло.

Другой вопрос: можно ли настроить TestBed, чтобы я мог тестировать только «дочерние» компоненты, не воссоздавая структуру хоста с FormGroup и FormGroupName? Я подозреваю, что если первый вопрос будет решен, я мог бы сделать что-то подобное в тестах.

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