Angular:使用$ rootScope变量赋值新变量时得到未定义的值

时间:2017-02-10 10:31:32

标签: angularjs int angularjs-ng-repeat rootscope

正如标题所述,我在使用$rootScope变量分配新变量时遇到小问题。

我的变量$rootScope.adulttotTicket的值为2.值为int。所以我想要的只是将新变量newVal分配给$rootScope.adulttotTicket变量。

<p data-ng-init="newVal = $rootScope.adulttotTicket"></p>

但是当我输出变量newVal时,它在我的浏览器上没有显示任何内容。所以我尝试在plunker上编辑,所以我发现值newVal未定义。我不知道该怎么做。

newVal应该很容易从$rootScope.adulttotTicket获得值2。但我一无所获。请参阅此plunkr plunkr

希望从任何人那里获得想法。谢谢!

2 个答案:

答案 0 :(得分:1)

使用$rootScope代替访问$root

<p data-ng-init="newVal = $root.adulttotTicket"></p>

我更新了您的plunkr,它确实可以正常工作。

答案 1 :(得分:0)

在视图中引用$rootScope时,请改为使用$root

<p data-ng-init="newVal = $root.adulttotTicket"></p>

<强>更新

上述原因不起作用的原因是因为您不在范围内,因此没有$scope来访问$root!要解决此问题,您可以在运行块中的$rootScope上声明您的变量,如下所示:

angular.module('myModule').
run(function($rootScope) {
    $rootScope.adulttotTicket = 'unassigned';
});

然后,您可以在视图中访问此内容(不提及$root$rootScope),如下所示:

<p data-ng-init="newVal = adulttotTicket"></p>