Angularjs $provide.decorator和module.decorator之间有什么区别?
引用角度 模块装饰器 此函数与$Provider.decorator函数相同,只是它是通过模块API公开的。这允许您将装饰器模式与模块配置块分离Angularjs $provide.decorator和module.decorator之间有什么区别?,angularjs,Angularjs,引用角度 模块装饰器 此函数与$Provider.decorator函数相同,只是它是通过模块API公开的。这允许您将装饰器模式与模块配置块分离 那么基本上这里的区别是什么?是否存在一种方法优于另一种方法的情况?为什么不总是使用module.decorator?module.decorator是在1.4中作为$provide.decorator的快捷方式引入的$provide.decorator仍可以用于向后兼容 $provide方法的明显特性是函数作用域可以访问提供程序和实例: app.con
那么基本上这里的区别是什么?是否存在一种方法优于另一种方法的情况?为什么不总是使用module.decorator?
module.decorator
是在1.4中作为$provide.decorator
的快捷方式引入的<代码>$provide.decorator仍可以用于向后兼容
$provide
方法的明显特性是函数作用域可以访问提供程序和实例:
app.config(($provide, $compileProvider) => {
$provide.decorator('linkService', ($delegate) => {
$compileProvider.aHrefSanitizationWhitelist(...);
return $delegate;
});
$provide
方法不太明显但仍然很重要的特性是,它们会在配置阶段后影响应用程序,而模块方法不会,这就为延迟加载和其他未记录但可能有益的技术创造了可能性:
app.config(($provide) => {
$provide.value('$provide', $provide));
});
app.run(($provide) => {
// app.decorator('service', ...) will do nothing here
$provide.decorator('service', ...);
});
app.run((service) => { ... });