首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >$provide.decorator和module.decorator有什么区别?

$provide.decorator和module.decorator有什么区别?
EN

Stack Overflow用户
提问于 2016-07-22 15:12:26
回答 1查看 588关注 0票数 1

引用角开发人员指南

module.decorator 此函数与$provide.decorator函数相同,除非它是通过模块API公开的。这允许您将装饰器模式从模块配置块中分离出来。

所以基本上这里有什么区别?是否有一种方法比另一种方法更可取的情况?为什么不总是使用module.decorator呢?

EN

回答 1

Stack Overflow用户

发布于 2016-07-22 16:53:53

Module.decorator是在1.4中作为$provide.decorator的快捷方式引入的。$provide.decorator仍可用于向后兼容性。

$provide方法的明显属性是函数作用域可以访问提供程序和实例注入器:

代码语言:javascript
复制
app.config(($provide, $compileProvider) => {
  $provide.decorator('linkService', ($delegate) => {
    $compileProvider.aHrefSanitizationWhitelist(...);
    return $delegate;
});

$provide方法不那么明显但仍然重要的特性是,它们在配置阶段之后影响应用程序,而模块方法不影响,这为延迟加载和其他无文档但可能有益的技术创造了可能性:

代码语言:javascript
复制
app.config(($provide) => {
  $provide.value('$provide', $provide));
});

app.run(($provide) => {
  // app.decorator('service', ...) will do nothing here
  $provide.decorator('service', ...);
});

app.run((service) => { ... });
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38529911

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档