Rootscope не доступен в функции

В приведенном ниже коде я регистрирую консоль $rootScope, и она регистрируется неопределенно. Почему это происходит?

$scope.init = function ($rootScope) {
    // var s = $cookies.get("arr");
    // var ex = [];

    var ex = $cookies.get("arr");
    $scope.arry = JSON.parse(ex);
    alert("scooe.arry" + $scope.arry);
    console.log("JSON.stringify($cookies.get('arr'))=" + $scope.arry);

    //create a call to google api for all stocks in the $scope.arry
    $scope.arry.forEach(function(entry) {
        console.log("entry is " + entry);
        var v = httpcall.getVal(entry);
        $scope.arry.push(v);
        //console.log("rootscoooope =" + $rootScope.share + "==");
        console.log($rootScope); debugger;
    });

Функция init вызывается ng-init контроллера с именем NameCtrl.

<ul>
    <li ng-repeat="sr in arry track by $index"> value : {{sr.l_cur}}
         <a href='#' onhover="remove" ng-click="removename(sr)"> (-)</a>
    </li> 
</ul>

2 ответа

Как вы можете прочитать в угловой документации для ngInit

(...) Существует только несколько подходящих вариантов использования ngInit, например, для наложения псевдонимов специальных свойств ngRepeat, как показано в демонстрации ниже; и для ввода данных с помощью сценариев на стороне сервера. Помимо этих нескольких случаев, вы должны использовать контроллеры вместо ngInit для инициализации значений в области.

Так что вы скорее должны предпочесть поместить свою логику прямо в контроллер И не должно быть никаких проблем для введения корневой области видимости в контроллер.

$rootScope в вашем примере является аргументом. Как вы вызываете функцию инициализации?

Из шаблона вы должны назвать это init($root)

Другие вопросы по тегам