angular - 可以使用另一个 Angular 服务吗?

标签 angular angular2-services

我有 2 个服务和 1 个组件:

服务

  • AuthService
  • 产品服务

组件

  • 产品提交组件

ProductService.postProduct 方法向 API 端点发出 POST 请求,该请求需要可通过 AuthService 获取的 token 参数.get_token() 方法。需要在 ProductSubmitComponent 中使用 ProductService 来提交新产品。

有两种方法可以做到这一点

1. ProductService 导入并使用 AuthService 获取 token ,而 ProductSubmitComponent 无需关心将 token 作为显式参数传递.

或者

2. ProductService.postProduct 方法将 token 作为显式输入参数,在请求服务方法时必须由 ProductSubmitComponent 作为附加参数提供。

这两种方式都应该可行,但我的困境是,我应该采用哪一种?这个问题实际上可以归结为:

是否可以在另一个服务中使用一个 Angular 服务,而该服务仅严格从指令/组件而不是其他服务使用?

最佳答案

我觉得这要看具体情况。如果您认为还要在其他组件中使用 ProductService.postProduct 方法,那么让 ProductService 导入 AuthService 会更有效>.

据我所知,在一项服务中使用另一项服务并不是一个坏习惯。我很确定您的 AuthService 注入(inject)了 Http 服务,这基本上是同一件事:)

关于angular - 可以使用另一个 Angular 服务吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38323917/

相关文章:

angular - 使用 takeUntil() 关闭订阅

json - autopulous-xdom2jso 中的“xdom 未定义”错误

dependency-injection - Angular 2 @Injectable() - 它是如何工作的

angular - 保存 Angular 2 *ngFor 循环的最后一个值

javascript - 私有(private)成员可以在 Angular 2 装饰器中访问

使用 Angular 2 进行 Spring 休息

angular - 将类导出为 Angular2 中的接口(interface)

dependency-injection - 在调用 bootstrap() 之前如何访问 angular2 的 Http 服务?

javascript - Angular2 [ngClass] 条件引导样式被切断

angular - 无法在 'createObjectURL' : Overload resolution failed with npm file-saver 上执行 'URL'