如何从Angular.js中的另一个模块注入提供程序

时间:2013-10-05 10:51:52

标签: javascript angularjs

为什么这个例子不起作用? jsfiddle 我收到的错误是找不到提供商。

var m1 = angular.module('m1', [])
    .provider('test', function() {
        return {
            $get: function() {
                return 'Hello from provider';
            }
        }
     });

var m2 = angular.module('m2', ['m1'])
    .config(['test', function(test) {
        alert(test);
    }]);

1 个答案:

答案 0 :(得分:3)

config功能中,您无法访问它,请尝试使用run方法。

var m2 = angular.module('m2', ['m1'])
  .run(['test', function(test) {
    alert(test);
  }]);

您在config功能中可以访问的是test的服务提供商,因此您可以

var m2 = angular.module('m2', ['m1'])
  .config(['testProvider', function(test) {
    alert(test);
  }]);

如果您想为测试服务提供某种特定于m2模块的配置,通常会这样做。