延迟stateChangeStart直到完成ajax

时间:2015-05-20 20:19:46

标签: javascript ajax angularjs

我正在尝试检查状态更改是否用户已登录,而我正在尝试使用Cookie中的令牌恢复已记录状态

eFx.run(function($rootScope, $cookieStore, $location, Auth) {
  $rootScope.$on('$stateChangeStart', function(event) {
    if ($rootScope.user == null) {
      if ($cookieStore.get('token') != undefined) {
        Auth.logIn({'token': $cookieStore.get('token')}).then(function(data) {
          $cookieStore.put('token', data.token);
          $rootScope.user = data.user;
          $rootScope.token = data.token;
        }, function(data) {
          $location.path("/login");
        });
      }
      else {
        $location.path("/login");
      }
    }
  });
});

我遇到的问题是我的页面控制器被启动并调用带有令牌的ajax,该令牌尝试从$rootScope获取,然后stateChangeStart中的Auth ajax返回promise。

有没有办法制作这个代码块,只有在它返回ajax承诺后才加载页面? 先谢谢你,丹尼尔。

0 个答案:

没有答案