【问题标题】:Error "10 $digest() iterations > reached" with $state.go inside $scope.$watch错误“10 $digest() 迭代 > 达到”,$state.go 在 $scope.$watch 内
【发布时间】:2015-10-21 20:35:48
【问题描述】:

如果本地存储因任何原因被清除,我会尝试将用户重定向到登录页面。 (例如:也许他们在另一个选项卡中再次打开应用程序并退出)。

我的头指令中有以下代码:

$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

据我所知,登录页面不会加载标题指令。从概念上讲,我认为我的逻辑没有任何问题,但显然 angular 不喜欢它。也许我已经前往登录页面,我说即使我已经前往那里。

我做错了什么?

【问题讨论】:

    标签: angularjs


    【解决方案1】:

    我刚刚从$scope.$watch 中删除了$state.go,并重新编写了逻辑以在其他地方完成同样的事情。

    我想我躲过了一劫,因为我能够做到这一点。这不是我认为适合所有情况的直接解决方案。

    【讨论】:

      猜你喜欢
      • 2015-11-11
      • 1970-01-01
      • 2016-02-25
      • 2015-05-07
      • 2016-08-15
      • 2013-09-19
      • 2015-05-30
      • 2013-11-10
      • 2014-03-20
      相关资源
      最近更新 更多