【问题标题】:AngularJS: Inject custom service into module.config function not possible?AngularJS:无法将自定义服务注入 module.config 函数?
【发布时间】:2014-10-07 16:45:59
【问题描述】:

我尝试将自定义服务注入到模块配置函数中,但我收到一个错误,提示该服务未定义:

var myApp = angular.module('myApp', []);

myApp.config(function($httpProvider, CommonConfigService) {

    var baseUrl = CommonConfigService.getRESTUrl();

});

我在几个控制器中使用它没有任何问题。

谁能提示我如何解决这个问题?

感谢和亲切的问候

【问题讨论】:

  • 是服务被注入到 angular.module('myApp.services')

标签: angularjs dependency-injection


【解决方案1】:

您不能根据angular docsconfig 注入服务,

配置块 - 在提供者注册期间执行 和配置阶段。只能注入提供者和常量 进入配置块。这是为了防止意外实例化 完全配置之前的服务。

【讨论】:

    【解决方案2】:

    如果服务被创建为提供是可能的。而不是:

    app.factory('MyFactory', function(){});
    

    使用

    app.provider('MyFactory', function(){});
    

    然后你可以像这样注入它:

    app.config(function($httpProvider, MyFactoryProvider) {
        var baseUrl = MyFactoryProvider.getRESTUrl();
    });
    

    【讨论】:

      猜你喜欢
      • 2016-09-02
      • 1970-01-01
      • 1970-01-01
      • 2017-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-12
      相关资源
      最近更新 更多