我在哪里创建或生成服务?

Where do i create or generate a Service?

我想知道应该在哪里生成 angular2 serviceangular2 的最新文档说可以在 app 文件夹中生成服务,但是,我正在关注的一些视频教程有一个预先生成的 shared 文件夹,其中服务是创建。我显然可以创建该文件夹,但我想知道什么是合适的以及为什么?

app-name/src/app/service-name.service.ts

app-name/src/app/shared/service-name.service.ts

这完全取决于您在应用程序架构中的分层方式。 Angular 2 建议按 modules/domains 分组,因此域中每个文件的名称都以 .service、.module、.pipe、.directive 等结尾。 将模块及其相关内容组合在其文件夹中将使单独维护特定模块变得容易,而无需更改应用程序的其他部分。模块内的路由也可以在该模块内本地化。

所以把所有的服务归到一个共同的共享模块下,导出来给其他模块使用,或者把服务封装到相关模块中,要看设计的角度和思路了。根据需求选择合适的方法,但始终牢记可维护性。

我假设您正在使用 Angular-cli 文件夹结构。如果您不使用 Angular-cli,请务必使用它。

假设您有 组件 A 和组件 B

组件 A: 想要使用服务 S1。

组件 B: 想要使用服务 S2。

在这种情况下,您在组件 A 文件夹中创建 S1 服务,在组件 B 文件夹中创建 S2。

现在假设 组件 A 和组件 B 想要使用服务 S3。在这种情况下,您应该在共享文件夹中创建服务。

summary: if you create service which is used by most of the component of your app, than you should create in shared folder. or 1 component using 1 service that you should create service in that particular component folder.