Rootscope无法使用

时间:2016-10-01 19:01:04

标签: angularjs angularjs-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函数由名为NameCtrl的控制器的ng-init调用。     

<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 个答案:

答案 0 :(得分:1)

您可以阅读角度documentation for ngInit

  

(...)ngInit只有少数适​​当的用途,例如   至于别名ngRepeat的特殊属性,如演示中所示   下面;并通过服务器端脚本注入数据。除了这些   在少数情况下,您应该使用控制器而不是ngInit来初始化   范围内的值。

所以你宁愿把你的逻辑直接放到你的控制器里。将根范围注入控制器应该没有任何问题。

答案 1 :(得分:1)

$示例中的rootScope是一个参数。你如何调用init函数?

从模板中,您应该将其称为init($root)