Angular - 为延迟加载模块提供全局服务

时间:2017-08-11 11:43:07

标签: javascript angular ng-modules

所以,我的Angular应用程序中有3个模块。

// main module
@NgModule({
  declarations: [AppComponent],
  bootstrap: [AppComponent]
})
export class AppModule { }

// lazy loading module
@NgModule({
})
export class ClinicModule { }

// lazy loading module
@NgModule({  
})
export class PatientModule { }

我们知道,对于延迟加载行为,我无法在 AppModule 中导入 ClinicModule PatientModule

但是,ClinicModule中有一个名为 PatientGroupService 的服务。

我在ClinicModule中使用此服务进行CRUD操作,在PatientModule中使用此服务来获取PatientGroup列表。

所以,我在两个模块中都需要它,我找到的唯一方法就是只获得一个PatientGroupService实例,而不在AppModule中导入ClinicModule,直接在AppModule上提供PatientGroupService,就像这样

// main module
@NgModule({
  declarations: [AppComponent],
  bootstrap: [AppComponent],
  providers :[PatientGroupService]
})
export class AppModule { }

您可能会注意到,它不是“全局服务”,只是用于2个非主要模块的服务。

它有效,但我想知道:

  • 这是实现目标的“正确方法”吗?
  • 还有其他/更好的方法吗?

0 个答案:

没有答案