为什么要使用装饰器,它将证明优势

时间:2014-04-01 09:45:38

标签: angularjs angularjs-directive

我将通过几周的angularjs,到达装饰器,我所理解的是,它只是通过添加或修改指令的现有对象来装饰/修改现有指令,

我的问题是为什么我们不首先直接在指令本身做同样的事情,为什么我们需要编写一个抽象指令,然后在后期执行config()指令,

使用这种行为的任何好处?,当它证明时,值得使用装饰器。

注意:由于我是学习者,可能是一个简单或愚蠢的观点,但请提出建议,

1 个答案:

答案 0 :(得分:1)

我不相信你可以装饰指令。装饰器用于覆盖或修改服务。它通常用于修改/增强/替换/包装您不拥有的第三方或上游服务。优点很多,我会列出一些我能想到的东西:

  1. 您可以修改,增强或替换第三方内置服务 在源头修改是没有意义的。这个答案给出了 一个很好的例子:https://stackoverflow.com/a/16078515/202913
  2. 您可以完全替换服务。作为示例,您可以替换 内置的$ log服务,具有您自己的日志实现 您的服务器或存储日志在本地存储中。
  3. 您可以将服务包装起来以进行日志记录/跟踪。
  4. 您可以在调用实际数据之前将服务包装为注入数据 服务方法,例如在调用$ http之前注入安全令牌 方法。
  5. 这是一个强大的功能,打开了许多门。