2015-06-08 114 views
0

我正在使用angular.js並嘗試從http攔截器內訪問當前路由。如果請求的路由具有自定義的authorize屬性並且用戶沒有登錄(我知道這不是對後端授權的替代,它旨在提供更好的用戶體驗),則目標是將用戶重定向到登錄頁面。攔截未經授權的路由請求並重定向

$routeProvider 
     .when('/profile', { authorize: true, templateUrl: 'page-profile.html' }); 


    $httpProvider.interceptors.push(function($rootScope, $q, $location) { 
      return { 
       request: function (config) { 

        var $route = what here? seems i cannot inject $route 

        if($route.authorize && !$rootScope.user) { 
         $location.path("/sign-in"); 
        } 

        return config; 
       } 
      }; 
     }]); 

我嘗試使用$route服務,但由於某些原因,應用程序犯規引導,如果我嘗試將其注入攔截。即使我能夠,我也需要解決方案來使用使用ui-router並暴露$ state而不是$ route的Ionic框架來使用移動設備。

如何從攔截器訪問路由對象,而不依賴$ route(它似乎無法工作)?

採用了棱角分明1.4

回答