我正在尝试做这样的事情:
angular.module('MyModule', ['ui'])
.config(function($rootScope) {
$rootScope.Gender = {
'M': 'Male',
'F': 'Female',
'U': 'Unknown',
};
})
但是我收到了这个错误:
未捕获错误:未知提供商:来自MyModule的$ rootScope
如果我无法访问模块配置中的$rootScope
,那么在哪里可以初始化模块范围的变量?
答案 0 :(得分: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
更“合适”。
答案 1 :(得分:8)
您无法将服务(此处为$ rootScope)注入配置块。在配置阶段只能注入常量和提供者。
在您的情况下,正确的解决方案是使用运行块。只需更改配置即可运行,事情应按预期工作。