Модуль доступа компонента - PullRequest
0 голосов
/ 26 ноября 2018

Я хочу получить доступ к модулю для компонента в моей системе.Раньше я использовал следующий хак:

export abstract class BaseComponent {

    constructor(private _compiler: Compiler) {
    }

    get parentModule() {
        return (this._compiler as any)._ngModule; // XXX hack, _ngModule not exposed via API
    }

Неудивительно, что это сломалось в недавнем обновлении.

Что такое законный способ получения модулякомпонента?


Предыстория: Мой проект разделен на две части кода: независимый от приложения уровень структуры, содержащий повторно используемые элементы управления и библиотеки, и уровень приложения, содержащий любые приложения.конкретный код / ​​директивы.На уровне структуры у меня есть код, который генерирует динамический компонент, который оборачивает существующий компонент во время выполнения.Этот динамический компонент должен иметь доступ к тому же импорту, что и компонент, к которому он относится.

Способ, которым я справляюсь с этим, заключается в импорте родительского модуля компонента, который я обертываю:

    @NgModule({
        imports: [BrowserModule, CommonModule, FormsModule, this.parentModule],
        exports: [ InjectedComponent ],
        declarations: [ InjectedComponent ],
        entryComponents: [ InjectedComponent ],
    })
    class InjectedModule {
    }

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

...