【发布时间】:2021-04-16 02:19:23
【问题描述】:
我刚开始使用 Angular 框架的特性模块 + 延迟加载的路由部分,但有点难以适应这些细微差别。不时出现的一件事是如何存储服务和接口——它们是否应该只放入使用它们的模块的提供者数组中?还是应该将某种主服务模块注入根模块?
我从各种教程中了解到,服务和接口不应该放在核心模块或共享模块中。
我之前在做什么:
//service.module.ts
@NgModule({
imports: [],
exports: [],
declarations: [],
providers: [],
})
export class ServicesModule {
static forRoot(): ModuleWithProviders<ServicesModule> {
return {
ngModule: ServicesModule,
providers: [
all the services
provided in our application
]
}
}
}
// then in app.module.ts
imports: [
ServicesModule.forRoot(),
]
所以我的选择是
- 保持原样设置,在 app 文件夹中有一个名为“services”的集体目录,并在需要服务的组件中使用构造函数 DI。同样对于模型/接口,从名为“模型”的目录中导入它们。
- 将服务移动到需要它们的模块中,并且只在 ServicesModule 中提供共享服务,帮助延迟加载模块。
我想一个不同/更简单的问题是,如果我将所有服务移回提供程序数组 我的 app.module,这会简化事情吗?似乎违反直觉。
【问题讨论】:
标签: angular typescript lazy-loading ng-modules