我很好奇AngularJS中的装饰器到底是什么。除了AngularJS文档中的简短内容和youtube视频中的简短提及(尽管很有趣)之外,装饰者在线上没有太多信息。
正如Angular所说的那样,装饰器是:
装饰服务,允许装饰者截取服务实例的创建。返回的实例可以是原始实例,也可以是委派给原始实例的新实例。
我真的不知道这 意味着 什么,而且我不确定为什么要将这种逻辑与服务本身分开。例如,如果我想在不同的条件下返回不同的值,则只需将不同的参数传递给相关函数,或使用共享该私有状态的另一个函数。
我仍然是AngularJS菜鸟,所以我敢肯定,这只是我的愚昧和/或坏习惯。
一个很好的用例$provide.decorator是,当您需要对模块所依赖的某些第三方/上游服务进行较小的“调整”时,保持服务不变(因为您不是该服务的所有者/维护者)。这是关于plunkr的演示。
$provide.decorator