2

所以,我的 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 中导入ClinicModulePatientModule

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

我在 ClinicModule 中使用该服务进行 CRUD 操作,并在 PatientModule 中使用该服务来提供 PatientGroup 列表。

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

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

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

它有效,但我想知道:

  • 这是实现我目标的“正确方法”吗?
  • 还有另一种/更好的方法吗?
4

0 回答 0