Angular 角度-延迟加载2个模块,需要共享相同的服务
共享模块:Angular 角度-延迟加载2个模块,需要共享相同的服务,angular,Angular,共享模块: export class SharedModule { static forRoot(): ModuleWithProviders { return { ngModule: SharedModule, providers: [ MyService ] }; } } @NgModule({ imports: [ CommonModule, SharedModule.forRoot()
export class SharedModule {
static forRoot(): ModuleWithProviders {
return {
ngModule: SharedModule,
providers: [
MyService
]
};
}
}
@NgModule({
imports: [
CommonModule,
SharedModule.forRoot()
]
})
export class LazyModule1 { }
@NgModule({
imports: [
CommonModule,
SharedModule.forRoot()
]
})
export class LazyModule2 { }
延迟加载模块#1:
export class SharedModule {
static forRoot(): ModuleWithProviders {
return {
ngModule: SharedModule,
providers: [
MyService
]
};
}
}
@NgModule({
imports: [
CommonModule,
SharedModule.forRoot()
]
})
export class LazyModule1 { }
@NgModule({
imports: [
CommonModule,
SharedModule.forRoot()
]
})
export class LazyModule2 { }
延迟加载模块#2:
export class SharedModule {
static forRoot(): ModuleWithProviders {
return {
ngModule: SharedModule,
providers: [
MyService
]
};
}
}
@NgModule({
imports: [
CommonModule,
SharedModule.forRoot()
]
})
export class LazyModule1 { }
@NgModule({
imports: [
CommonModule,
SharedModule.forRoot()
]
})
export class LazyModule2 { }
我需要一个实例,但这样做会创建两个新的单例服务。
是否可以在不导入AppModule中的SharedModule.forRoot()的情况下执行此操作?还有别的选择吗?如果您想在两个不同的模块中使用相同的服务,谢谢。然后在根模块中注册您的服务,您可以在其中定义两个延迟加载的路由。在这种情况下,您将拥有多个模块和组件的单个实例