如何在AngularJs中stateProvider状态更改之前加载会话数据?

时间:2015-07-27 03:13:23

标签: angularjs acl synchronous

我使用angular-acl(https://github.com/mikemclin/angular-acl)来管理我的应用程序的授权逻辑并且它正常工作,除非用户打开一个新的窗口/标签。

当用户打开一个新窗口/选项卡时,我无法访问sessionStorage,因此我需要从API重新加载acl和用户角色,但由于请求是异步的,因此通常会在检查权限后解析。

我如何证明stateProvider只会在加载acl列表后更改页面?

以下是我尝试重新加载权限的方法:

myApp.controller('IonAutocompleteController', function($scope, itemsFactory)
{
  $scope.getTestItems = function(query) {
    itemsFactory.list(query, function(items) {
      return items;
    });
  });

发出请求的服务:

myApp.run(['AclService', 'Auth', '$http', function (AclService, Auth, $http) {
    if(!AclService.resume()) {
      Auth.load_acl();
      Auth.load_user_roles();
      // I need to certify that these requests are complete before continue
    }
}]);

0 个答案:

没有答案