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()的情况下执行此操作?还有别的选择吗?如果您想在两个不同的模块中使用相同的服务,谢谢。然后在根模块中注册您的服务,您可以在其中定义两个延迟加载的路由。在这种情况下,您将拥有多个模块和组件的单个实例