Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 为什么要使用decorator,因为这将证明它的优势_Angularjs_Angularjs Directive - Fatal编程技术网

Angularjs 为什么要使用decorator,因为这将证明它的优势

Angularjs 为什么要使用decorator,因为这将证明它的优势,angularjs,angularjs-directive,Angularjs,Angularjs Directive,我从几周前开始学习angularjs,已经联系到了decorators,我所了解的是,它将通过添加或修改现有的指令对象来装饰/修改现有的指令 我的问题是,为什么我们不首先直接在指令本身中执行相同的操作,为什么我们需要编写一个抽象指令,然后在后面的阶段执行config()指令 使用这种行为有什么好处吗?当它被证明时,使用装饰师是值得的 注意:由于我是一名学习者,这可能是一个简单或愚蠢的观点,但请给出建议,我不相信你能做到。装饰器用于覆盖或修改服务。它通常用于修改/增强/替换/包装您不拥有的第三方或

我从几周前开始学习angularjs,已经联系到了decorators,我所了解的是,它将通过添加或修改现有的指令对象来装饰/修改现有的指令

我的问题是,为什么我们不首先直接在指令本身中执行相同的操作,为什么我们需要编写一个抽象指令,然后在后面的阶段执行config()指令

使用这种行为有什么好处吗?当它被证明时,使用装饰师是值得的


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

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

  • 您可以修改、增强或替换第三方内置服务 在源代码处进行修改是没有意义的。这个答案给出了答案 一个很好的例子:
  • 您可以完全替换服务。例如,您可以替换 内置$log服务,以及您自己的登录到的实现 您的服务器或存储日志位于本地存储中
  • 您可以出于日志记录/跟踪目的包装服务
  • 您可以在调用实际服务之前包装服务以注入数据 服务方法,例如在调用$http之前注入安全令牌 方法

  • 这是一个强大的功能,可以打开许多门。

    实际上你可以这样做:@DmitriZaitsev谢谢你的链接,非常有趣。