我想知道我应该在哪里生成angular2 service
? angular2
的最新文档表示可以在app
文件夹中生成服务,但是,我之前的一些视频教程预先生成了shared
文件夹,其中服务已创建。我显然可以创建该文件夹,但我想知道什么是合适的,为什么?
app-name/src/app/service-name.service.ts
OR
app-name/src/app/shared/service-name.service.ts
答案 0 :(得分:3)
我假设您使用的是 Angular-cli 文件夹结构。如果你没有使用Angular-cli,请使用它。
假设你有组件A和组件B 。
组件A :想要使用服务S1。
组件B :想要使用服务S2。
在这种情况下,您在Component A文件夹中创建S1服务,在Component B文件夹中创建S2。
现在假设组件A和组件B 想要用户服务S3。在这种情况下,您应该在共享文件夹中创建服务。
摘要:如果您创建大多数组件使用的服务 你的应用程序,应该在共享文件夹中创建。或1个组件 使用1个服务,您应该在该特定服务中创建服务 组件文件夹。
答案 1 :(得分:2)
这完全取决于您在应用程序架构中的分层方式。 Angular 2建议按模块/域进行分组,因此,您拥有域中每个文件的名称,以.service,.module,.pipe,.directive等结尾。 将模块及其相关内容组合在其文件夹中将使得在不更改应用程序的其他部分的情况下单独维护特定模块变得容易。此外,模块内的路由可以在该模块中进行本地化。
因此,将所有服务分组到公共共享模块下并将其导出以供其他模块使用或将服务封装到相关模块取决于设计视角和思路。根据要求选择合适的方法,但始终考虑到可维护性。