我正在开发一个角度应用程序,我有多个模块。我想要以下结构
如果我有共同模块,将在共享模块中导入,在app模块中,只会导入共享模块。这里的主要问题是我想要一个公共模块中存在的服务的单个实例。我正在尝试
第1单元
export class CommonModule1 {
static forRoot(): ModuleWithProviders {
return {
ngModule: CommonModule1,
providers: MODULE_PROVIDERS2
};
}
}
第2单元
export class CommonModule2 {
static forRoot(): ModuleWithProviders {
return {
ngModule: CommonModule2,
providers: MODULE_PROVIDERS
};
}
}
在共享模块中,我将这两个模块导入为
@NgModule({
imports: [CommonModule1.forRoot(), CommonModule2.forRoot()],
providers: [],
entryComponents: []
})
export class SharedModule {
static forRoot(): ModuleWithProviders {
return {
ngModule: SharedModule,
providers: MODULE_PROVIDERS3
};
}
}
在app模块中我正在做
imports: [SharedModule.forRoot()]
并在app模块的子模块中
imports: [SharedModule]
一切正常。但我发现,在应用程序模块的每个子模块中都创建了CommonModule1和CommonModule2的新服务实例。我究竟做错了什么 。请帮忙。我被卡住了。