2016-11-16 5 views
0

これで、anglejsでui-viewをロードする前に、ユーザーの許可を確認します。問題があるAngularjs ui route:ビューをロードする前にアクセス許可を確認する

<ui-view name="header"></ui-view> 
<ui-view name="sidebar"></ui-view> 

::私が間違っ$state.go('logout');なるローカルストレージが働いている編集するとき

$stateProvider.state('app.test', { 
     url: '/test', 
     component: 'test', 
     resolve: { 
     delay: function ($q, $http, $window, $state, $timeout) { 
      var delay = $q.defer(); 
      var token = $window.localStorage.getItem('token'); 
      $http({ 
      url: "url get profile here", 
      method: "GET", 
      headers: { 
      'Authorization': token 
      } 
      }) 
      .success(function(response) { 
      }) 
      .error(function(response) { 
      $state.go('logout'); 
      }); 
      delay.resolve(); 
      return delay.promise; 
     } 
     } 
    }) 

とテンプレートのhtmlで: 私route.jsはこのようなものです。しかしui-viewのテンプレートからは、すでに関数をコントローラに呼び出して名前headersidebarとしています。チェックの許可が行われる前に、どのようにしてui-viewからアクセスコントローラをブロックできますか?

答えて

0

私はdelay.resolve();を正確にはプッシュしないため、これはエラーです。私のコードは次のようになります:

.success(function(response) { 
      delay.resolve(); 
}) 
.error(function(response) { 
      delay.reject(); 
      $state.go('logout'); 
}); 

関連する問題