Angular:在模块中包装提供程序?

时间:2017-05-10 16:46:27

标签: angular

我的提供商数量正在增长:

app.module.ts:

providers: [
  RegistrationService, LoginService,
  LoginPageGuard, LoggedInGuard, VerifiedGuard,
  LoggedInAndVerifiedGuard, UnverifiedGuard,
  NotLoggedInGuard
],

我能够用模块做这样的事情:

MY-material.module.ts:

@NgModule({
  imports: [
    CommonModule,
    MdToolbarModule,
    MdButtonModule,
    MdCardModule,
    MdProgressBarModule,
    MdInputModule,
    MdProgressSpinnerModule,
    MdSelectModule,
    MdCheckboxModule,
    MdMenuModule
  ],
  exports: [
    MdToolbarModule,
    MdButtonModule,
    MdCardModule,
    MdProgressBarModule,
    MdInputModule,
    MdProgressSpinnerModule,
    MdSelectModule,
    MdCheckboxModule,
    MdMenuModule
  ],


declarations: []
})
export class MyMaterialModule {
}

然后只在我的app模块中包含该模块。是否可以与服务/提供商进行类似的事情?

我问的主要原因是因为我正在为组件和e2e测试编写测试。我认为我可以只包含封装的服务,而不是复制/粘贴我的提供者和服务。

1 个答案:

答案 0 :(得分:0)

Angular中的服务没有模块封装,但延迟加载的模块除外。一旦加载了它们所定义的模块,它们就会在根注入器中注册。因此,您可以将ABC模块与提供程序配合使用,然后将它们导入D模块,并将此D模块导入主应用程序模块。< / p>