2017-06-20 26 views
0

我有途徑限制網址無法更改承諾在角UI的決心函數拒絕路由器

.state('staff.dashboard', { 
      url: '/dashboard', 
      templateUrl: 'demo2.html', 
     }) 
.state('staff.users.institutions', { 
      url: '/institutions', 
      templateUrl: 'demo.html', 
      resolve: { 
       security: [ 
        '$q', 'UserFactory', 'AuthenticationService', 
        function ($q, UserFactory, AuthenticationService) { 
         UserFactory.setData(AuthenticationService.getUserData()); 
         if (!UserFactory.hasInstitutionsUsersAccess()) { 
          return $q.reject(App.errors[401]); 
         } 
        } 
       ] 
      } 
     }) 

而上的錯誤,我有

$rootScope.$on('$stateChangeError', function (e, toState, toParams, fromState, fromParams, error) { 
     if (error === App.errors[401]) { 
      $state.go('staff.dashboard'); 
     } 
    }); 

於是之情況是:

  • 在登錄應用程序之前更改URL /院校時,它將URL更改爲?url =%2Fdashboard因爲安全機構狀態。
  • 我想是2Finstitutions保持網址爲?URL =%後決心拒絕$ Q

任何幫助將是可觀的。

回答

0

您可以使用您使用toState和/或fromState PARAMS:

$rootScope.$on('$stateChangeError', function (e, toState, toParams, fromState, fromParams, error) { 
    if (error === App.errors[401]) { 
     $state.go('staff.dashboard', {"url" : fromState.url}); 
    } 
}); 

然後你就可以訪問你的網址PARAM在儀表板:

app.controller('dashboardController', function($scope, $stateParams) { 
    var fromUrl = $stateParams.url; 
});