【发布时间】:2014-08-17 17:19:32
【问题描述】:
我使用$rootScope 设置了一个登录变量,所以我的代码知道用户是否登录:
$rootScope.login = true;
现在,如果用户未登录,我想将任何位置更改重定向到登录页面。所以我尝试了这个:
$scope.$on('$locationChangeStart', function(){
if (!$rootScope.login) $location.path('/');
});
但在这种情况下,$rootScope.login 返回未定义。如果我尝试像{{login}} 那样将变量打印到页面上,它确实显示为真,所以我知道正在设置变量。我在更改位置时做错了什么?
【问题讨论】:
-
您如何将登录更新为 true,在异步调用期间是否会发生任何方式。你能显示更多相关的代码吗?特别是您如何设置登录属性?
-
@PSL 啊,是的,我认为你是对的,我试图在异步调用首先设置它之前读取变量!感谢您指出这一点。
标签: javascript angularjs routes