Angular 2服务:正确的用例

时间:2017-07-18 13:21:24

标签: angular angular-services

过去2个月我一直在学习Angular 2,我对这些服务的使用感到有些困惑。如果我正在开发一个包含多个组件的应用程序,并且每个组件都有一组要从Web服务中显示的数据,如果它们构建在相同的模型上,我是否可以使用单个服务来显示数据,或者我是否应该通过以下方式创建一个服务:成分

提前感谢您就此事启发我

2 个答案:

答案 0 :(得分:3)

服务类(提供者)使用@Injectable进行修饰,可以是:

  • 单身人士,您可以在提供商的@ngModule中的app-module.ts中定义它们:[] array
  • 在@Component装饰器中注入单个服务不能执行的用例。

如果你的服务包含状态,那么单身人士可能会产生副作用,当你将它们放入@Component

这里的文档有误导性。向下滚动到元数据属性:查看“提供者:”

例如,您可以通过返回Observables来获得无状态服务。

即。订阅HTML模板后面的组件Typescript中的被叫服务。

  • 组件类具有可观察的属性
  • html模板将可观察的类属性与aysnc pipe结合使用。 |异步

答案 1 :(得分:1)

您可以在许多组件中使用服务,而无需为每个组件创建唯一的服务。

通过angular2 reference

  

不是一遍又一遍地复制和粘贴相同的代码,而是   创建一个可重用的数据服务并将其注入   需要它的组件。

此外,服务是单例,组件中的所有实例都是相同的(它基于分层注入器)。