一尘不染

什么是“装饰器”?如何使用?

angularjs

我很好奇AngularJS中的装饰器到底是什么。除了AngularJS文档中的简短内容youtube视频中的简短提及(尽管很有趣)之外,装饰者在线上没有太多信息。

正如Angular所说的那样,装饰器是:

装饰服务,允许装饰者截取服务实例的创建。返回的实例可以是原始实例,也可以是委派给原始实例的新实例。

我真的不知道这 意味着
什么,而且我不确定为什么要将这种逻辑与服务本身分开。例如,如果我想在不同的条件下返回不同的值,则只需将不同的参数传递给相关函数,或使用共享该私有状态的另一个函数。

我仍然是AngularJS菜鸟,所以我敢肯定,这只是我的愚昧和/或坏习惯。


阅读 232

收藏
2020-07-04

共1个答案

一尘不染

一个很好的用例$provide.decorator是,当您需要对模块所依赖的某些第三方/上游服务进行较小的“调整”时,保持服务不变(因为您不是该服务的所有者/维护者)。是关于plunkr的演示。

2020-07-04