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)