Как сделать внедрение зависимостей для динамических угловых компонентов - PullRequest
0 голосов
/ 16 октября 2019

Я пытаюсь построить динамический компонент внутри любого контейнера. Мне нужны были некоторые предопределенные сервисы и инъекции, доступные в угловом мире внутри динамически создаваемого компонента. Основной причиной этого является внешний сервис, который отвечает за внешний вид компонента, но для компонента на стороне клиента необходимо выполнить дополнительные действия.

private elementRef: ElementRef в конструкторе динамического компонента для причин внедренияпроблема, и он не может предоставить значения для инъекций. Получение ошибки - «Ошибка ОШИБКИ: невозможно разрешить все параметры для Xyz: (?).»

const component = Component({
            template: div,
            selector: 'test'
        })(
            class Xyz {
                constructor(private elementRef: ElementRef) { }
            });
        const module = NgModule({ declarations: [component] })(class {
        });
        this.compiler.compileModuleAndAllComponentsAsync(module)
            .then((factories) => {
                const f = factories.componentFactories[0];
                const cmpRef = f.create(this.injector, [], null, this.ngModuleRef);
                                container.clear();
                container.insert(cmpRef.hostView);
             });

Каков наилучший способ ввода или передачи параметров в конструктор, который создается динамически?

...