动态使用服务加载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