2017-07-16 63 views
-1

有人可以幫助我,我從這個問題中迴避

我想限制用戶在他們必須訪問的頁面上。 我唯一知道的是,我使用的決心$狀態做到這一點 但如果他們訪問受限制的網頁,我不能將用戶重定向到401頁例如..

這裏是我的$狀態配置

.state('app.libraries.class', { 
     url: '/class', 
     data: { pageTitle: 'Class Library' }, 
     templateUrl: 'views/libraries/class.html', 
     resolve: { 
      access: ['$q','AccessService', function($q,AccessService){ 
       var currentUser = AccessService.currentUser(); 
       if(currentUser.hasAccess === "false"){ 
        return $q.reject('unauthorized!'); 
       } 

      }] 
     } 
    }) 
    .state('app.libraries.account', { 
     url: '/account', 
     data: { pageTitle: 'Account Library' }, 
     templateUrl: 'views/libraries/account.html', 
     resolve: { 
      access: ['$q','AccessService', function($q,AccessService){ 
       var currentUser = AccessService.currentUser(); 
       if(currentUser.hasAccess === "false"){ 
        return $q.reject('unauthorized!'); 
       } 

      }] 
     } 
    }) 

這裏是我的$ stateChangeError

$rootScope.$on('$stateChangeError', function(event, toState, toParams, 
fromState, fromParams, error) { 
    event.preventDefault(); 
    $state.go('app.dashboard.index'); 
}); 

什麼應該是什麼問題?我剛剛得到這個錯誤

過渡抑制($ ID:0類型:6,消息:過渡差錯, 細節:未經授權)

+0

什麼版本的UI路由器您使用的是幫你? – Freego

+0

我用1.0.3 。嗯,我stucked –

+0

然後,我想這是因爲事件沒有被解僱,請檢查我的答案是否有可能的解決方案。我最近碰到這個問題 – Freego

回答

0

由於您使用的UI路由器1.0.3我想你問題在於stateChange事件不再被解僱。

在他們的文檔:

注:狀態更改事件已被棄用,殘疾人和過渡鉤代替,版本1.0

現在,你應該使用過渡鉤,看看這個鏈接:

https://ui-router.github.io/guide/ng1/migrate-to-1_0#state-change-events

你可以像這樣的東西取代您的

也看看這個:https://ui-router.github.io/ng2/docs/latest/classes/transition.transition-1.html#onerror

應該

+0

謝謝:) 解決了我的問題 –