我知道在配置块之外调用$ provide是不可能的。是否有任何技巧可以将$ offer注入$ offer.decorator中调用它的服务?
angular.module('app', [])
.config(function($provide){
$provide.decorator('myService', function($delegate){
//inject the $provide into myService through $delegate
return $delegate;
}
})

答案 0 :(得分:1)
$provide
是特殊的,因为它是由Angular在内部定义的,它可以通过注入器among service providers找到(因此它可以在config
中找到),但不能在service instances中找到。
这可以通过
轻松修复angular.module('app', []).config(function ($provide) {
$provide.value('$provide', $provide);
});
但是这样也可以很容易地以不合时宜的方式定义组件。