如果本地存储因任何原因清除,我会尝试将用户重定向到登录页面。 (示例:也许他们在另一个选项卡中再次打开应用程序并注销)。
我的header指令中有以下代码:
$scope.$watch(
function (scope) {
if (!$localStorage.user || !$localStorage.user.hasOwnProperty('basicAuth'))
$state.go('login');
$scope.user = $localStorage.user;
return $localStorage.user;
}
);
有一个$watch
正在观看$localStorage
所以我决定把我的逻辑放在那里。
但是,它会导致以下错误:
行:16033错误:[$ rootScope:infdig] 10 $ digest()迭代 到达。中止!观察者在最近5次迭代中被解雇:[] http://errors.angularjs.org/1.4.6/ $ rootScope / infdig P0 = 10安培; P1 =%5B%5D
据我所知,登录页面不会加载header指令。从概念上讲,我没有看到我的逻辑有什么问题,但显然有点不喜欢它。也许我已经走向了登录页面,我说要去那里,即使我已经去了那里。
我做错了什么?
答案 0 :(得分:0)
我刚刚从$state.go
删除$scope.$watch
并重新编写逻辑以在其他位置完成相同的操作。
我想我躲过了一颗子弹,因为我能够做到这一点。这不是我认为适合所有情况的直接解决方案。