【问题标题】:Angular - lazy loading 2 modules and need to share same serviceAngular - 延迟加载 2 个模块并需要共享相同的服务
【发布时间】:2020-01-04 04:23:29
【问题描述】:

共享模块:

export class SharedModule {
  static forRoot(): ModuleWithProviders {
    return {
      ngModule: SharedModule,
      providers: [
        MyService
      ]
    };
  }
}

延迟加载模块 #1:

@NgModule({
  imports: [
    CommonModule,
    SharedModule.forRoot()
  ]
})
export class LazyModule1 { }

延迟加载模块 #2:

@NgModule({
  imports: [
    CommonModule,
    SharedModule.forRoot()
  ]
})
export class LazyModule2 { }


我需要一个实例,但这样做会创建 2 个新的单例服务。 是否可以在 AppModule 中不导入 SharedModule.forRoot() 来执行此操作?有什么选择吗?谢谢

【问题讨论】:

    标签: angular


    【解决方案1】:

    如果您想在 2 个不同的模块中使用相同的服务。然后在根模块中注册您的服务,您可以在其中定义两个延迟加载的路由。在这种情况下,您将拥有多个模块和组件的单个实例。

    【讨论】:

      猜你喜欢
      • 2018-04-10
      • 1970-01-01
      • 1970-01-01
      • 2018-04-17
      • 2017-02-22
      • 2017-06-21
      • 2018-06-19
      • 2020-09-06
      • 1970-01-01
      相关资源
      最近更新 更多