我认为对此有一个简单直接的答案(也许是微不足道的),我只是没有把头缠住。
为什么这样做会满足我的要求-也就是说,将对$provide
的引用注入到我的服务中:
angular.module('error_reporting', [])
.provider('RaygunLogger', function() {
var provide = undefined;
this.setProvide = function(p){
provide = p;
}
this.$get = function() {
// use $provide in p
};
})
.config(function(RaygunLoggerProvider, $provide) {
RaygunLoggerProvider.setProvide($provide);
});
而这会产生形式为
Unknown provider: $provideProvider <- $provide <- RaygunLogger <- RaygunLogger
的错误?angular.module('error_reporting', [])
.provider('RaygunLogger', function() {
this.$get = function($provide) {
// use $provide
};
});
在设置进样器之前
RaygunLogger.$get()
是否正在运行?我认为这是一个操作顺序问题,在这里我需要等到模块配置阶段才能注入$provide
,但是我不知道在文档中的哪个位置进行验证。 最佳答案
$provide
仅在配置阶段可用。提供程序的$get
函数在配置阶段之后运行,以创建提供程序提供的内容。
在这一点上,您不能做您想做的事情。