动态使用服务加载NgModule entryComponents

嗨,我是新的angular2和typescript。 我正在动态加载组件,我想知道是否有方法在模块的“声明”和“entryComponents”中使用服务声明我的组件。

使用打字稿,我可以通过执行以下操作来实现它:

import { ComponentLoaderService } from './../../services/component-loader.service';

let componentsToLoad = ComponentLoaderService.getComponents();

@NgModule({
  declarations: [ componentsToLoad ],
  entryComponents: [ componentsToLoad ],
})
export class testModule {}

@NgModule({
    declarations: [],
    exports: []
})
export class testModule {
    static withComponents(components: any[]) {
        return {
            ngModule: testModule,
            providers: [
                {provide: ANALYZE_FOR_ENTRY_COMPONENTS, useValue: components, multi: true}
            ]
        }
    }
}

其他模块:

import { ComponentLoaderService } from './../../services/component-loader.service';

let componentsToLoad = ComponentLoaderService.getComponents();

@NgModule({
    imports: [
        BrowserModule,
        FormsModule,
        testModule.withComponents([
            ...componentsToLoad
        ])
    ],
    declarations: [
        AppComponent,
        ...componentsToLoad
    ],
    bootstrap: [AppComponent]
})
export class AppModule {
}

通过在这里使用ANALYZE_FOR_ENTRY_COMPONENTS,您可以动态地将多个组件添加到NgModule.entryComponents条目中。

链接地址: http://www.djcxy.com/p/94263.html

上一篇: Load NgModule entryComponents dynamically using service

下一篇: Docker compose named volume: find volume on host machine