Где я могу инициализировать переменные модуля?
Я пытаюсь сделать что-то вроде этого:
angular.module('MyModule', ['ui'])
.config(function($rootScope) {
$rootScope.Gender = {
'M': 'Male',
'F': 'Female',
'U': 'Unknown',
};
})
Но я получаю эту ошибку:
Непринятая ошибка: неизвестный поставщик: $rootScope из MyModule
Если я не могу получить доступ к $rootScope
внутри моей конфигурации модуля, где подходящее место для инициализации переменных модуля?
Ответы
Ответ 1
Вы не можете вводить сервисы (здесь $rootScope) в блок конфигурации. Только константы и поставщики могут быть введены во время фазы конфигурации.
В вашем случае правильным решением будет использование блока выполнения. Просто измените конфигурацию для запуска, и все должно работать как ожидалось.
Ответ 2
Вместо использования $rootScope
вы также можете использовать константу или значение angular:
angular.module('MyModule', ['ui']).constant( 'Gender', {
'M': 'Male',
'F': 'Female',
'U': 'Unknown',
});
Постоянная никогда не может быть изменена, тогда как значение может. И вы можете вводить его там, где вам это нужно:
app.controller( 'MainController', function ( $scope, Gender ) {
console.log( Gender.M );
});
По-моему. это кажется более "правильным" для переменных сайта, чем с использованием $rootScope
.