我认为对此有一个简单直接的答案(也许是微不足道的),我只是没有把头缠住。

为什么这样做会满足我的要求-也就是说,将对$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函数在配置阶段之后运行,以创建提供程序提供的内容。

在这一点上,您不能做您想做的事情。

10-02 21:04