CtrlA app.controller('CountryCtrl', funct-6ren">
gpt4 book ai didi

javascript - AngularJS - 无法访问 RootScope

转载 作者:行者123 更新时间:2023-11-29 14:58:24 25 4
gpt4 key购买 nike

奇怪的问题,我无法访问在 CtrlA 中设置的 CtrlB 变量中的 $rootScope。

HTML:

<div role="main" class="container_9" ng-controller="CountryCtrl" ng-init="updateToken('<?php echo $TOKEN; ?>')">  

CtrlA

app.controller('CountryCtrl', function ($scope,$rootScope, $http) {
$scope.updateToken = function(token) {
$rootScope.token = token;
}
});

CtrlB

app.controller('DealerListCtrl', function ($scope, $http, $rootScope, dealerService) {
$scope.dealer = [];
$http.get('files/framework/dealer/'+ $rootScope.token).success(function(data) {
$scope.dealerall = data;
});
//$scope.dealerall = dealerService.api.get({token: $scope.token});
$scope.orderProp = 'name';

});

错误信息:

/framework/dealer/undefined 500 (Internal Server Error)   

我做错了什么?

更新
插件代码:
http://plnkr.co/edit/r559zyMKjA64xSdmrTem

无法运行...

最佳答案

这里有两个关键问题:首先,您在应该使用服务时使用了 $rootScope,其次,您假设了 Controller 的执行顺序。如果只是一秒钟的事情,您可以设置 $watch 命令来监视更改,以确保您的第二个 Controller 在设置时具有更新的值。

但是你不应该污染全局范围。将您的 token 包装到可以注入(inject)的服务中,您可以在该服务上 $watch 更改。也就是说,如果不知道您的 Controller 在什么上下文中运行,我无法发布任何更具体的内容(即代码)。

但我希望这对您有所帮助!如果需要,请使用更多信息更新您的帖子,我会深入探讨。实际上,如果您可以创建一个我可以直接修改的 Plunker 或 jsFiddle,那就太好了。

关于javascript - AngularJS - 无法访问 RootScope,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14201899/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com