【发布时间】:2018-09-11 23:14:15
【问题描述】:
如果我的 Angular 应用程序的主模块中有以下场景会发生什么?
在 app.module.ts 上,我使用 forRoot() 导入模块 TranslateModule 以对其进行配置并使其可用于所有应用程序。在 shared.module.ts 中,我导出该模块,以便其他模块可以使用它。在 shared.module.ts 中我还导出服务,因此我创建了 forRoot() 方法并将其导入 app.module.ts。
这样我导入 TranslateModule 两次。一个直接在 app.module.ts 中,带有 forRoot 形式,另一个通过 shared.module.ts。这样做有问题吗?如果存在,如何解决?
app.module.ts
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
AppRoutingModule,
NgbModule.forRoot(),
ComponentsModule,
DashboardModule,
OtherModule,
HttpClientModule,
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory: HttpLoaderFactory,
deps: [HttpClient]
}
}),
SharedModule.forRoot()
],
providers: [],
bootstrap: [AppComponent]
})
shared.module.ts
@NgModule({
imports: [
CommonModule
],
declarations: [],
exports: [
TranslateModule
]
})
export class SharedModule {
static forRoot(): ModuleWithProviders {
return {
ngModule: SharedModule,
providers: [CounterService]
};
}
}
【问题讨论】:
标签: angular typescript import module export