14

我正在尝试做这样的事情:

angular.module('MyModule', ['ui'])
    .config(function($rootScope) {
        $rootScope.Gender = {
            'M': 'Male',
            'F': 'Female',
            'U': 'Unknown',
        };
    })

但我得到这个错误:

未捕获的错误:未知的提供者:来自 MyModule 的 $rootScope

如果我无法访问$rootScope我的模块配置内部,那么初始化模块范围变量的合适位置在哪里?

4

2 回答 2

25

除了使用$rootScope,您还可以使用角度常数或值:

angular.module('MyModule', ['ui']).constant( 'Gender', {
  'M': 'Male',
  'F': 'Female',
  'U': 'Unknown',
});

常量永远不能改变,而值可以。你可以在任何你需要的地方注入它:

app.controller( 'MainController', function ( $scope, Gender ) {
  console.log( Gender.M );
});

在我看来。对于站点范围的变量,这似乎比使用$rootScope.

于 2013-01-27T22:41:51.890 回答
8

您不能将服务(此处为 $rootScope)注入配置块。在配置阶段只能注入常量和提供者。

在您的情况下,正确的解决方案是使用运行块。只需将配置更改为运行,事情就应该按预期工作。

于 2013-01-27T22:25:18.467 回答