Подтвердить что ты не робот

Значение свойства angularJS - $rootScope undefined в сервисе

В настоящее время я создаю новое свойство в $rootScope и устанавливаю его значение в одном модуле.

$rootScope.test = 123;

Затем я пытаюсь ссылаться на это значение позже в сервисной функции.

.factory("testFactory", function ($location, $http, $rootScope) {
    /* .... */
    return {
        testFunction : function(){
            console.log($rootScope);
            console.log($rootScope.test);
        },
        /* .... */

Когда я просматриваю вывод консоли в Chrome, я вижу, что значение теста устанавливается правильно в объекте $rootScope, но я не могу ссылаться с помощью синтаксиса $rootScope.test. $rooScope.test просто возвращает undefined.

Есть ли причина, по которой вы не можете ссылаться на значения свойств $rootScope в сервисах? Или я пытаюсь получить это значение неправильно?


ОБНОВЛЕНИЕ - Я создал Plunker, который демонстрирует проблему, с которой я сталкиваюсь. http://plnkr.co/edit/ePEiYh

4b9b3361

Ответ 1

Это должно работать просто отлично:

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

myApp.run(['$rootScope', function($rootScope){
    $rootScope.test = 123;
}]);

myApp.controller('AppController', ['$rootScope', function ($rootScope) {
    console.log($rootScope.test);
}]);

Плункер: http://plnkr.co/edit/7NTGOK

Я предполагаю, что вы читаете значение, прежде чем писать его.

ОБНОВИТЬ

Опыт отладки здесь действительно странный. Тем не менее, в моем обновленном плункере вы можете видеть по временным меткам, что запись происходит после прочтения:

http://plnkr.co/edit/pn5Wxk