【问题标题】:How to override or add some functionality to the existing AngularJS services?如何覆盖或添加一些功能到现有的 AngularJS 服务?
【发布时间】:2016-04-10 07:10:21
【问题描述】:

我想覆盖或添加更多功能到现有服务,如 $http、$log 等 该怎么做?

【问题讨论】:

标签: angularjs


【解决方案1】:

您需要使用 $provide.decorator 方法来扩展任何角度服务,根据angular docs 定义装饰器:

服务装饰器拦截服务的创建,允许它覆盖或修改服务的行为。装饰器返回的对象可能是原始服务,也可能是替换或包装并委托给原始服务的新服务对象。

偶然发现了 Freek Wielstra 的 link,这可能会帮助您更进一步。

编辑: 请查看@tomakisquare 的这个 SO answer,他提供了一个出色的 plunkr 示例来扩展第三方服务(或与此相关的任何服务),而无需干预原始代码。

【讨论】:

  • 感谢您的回答!!
猜你喜欢
  • 2023-03-28
  • 2014-01-01
  • 2016-05-20
  • 2013-08-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-17
  • 1970-01-01
相关资源
最近更新 更多