角度Restangular局部存储拦截器问题

时间:2016-02-05 19:08:28

标签: javascript angularjs restangular

我正在使用RestangularProvider来设置$ http拦截器,以便在所有的restangular请求中注入一个身份验证头。问题是您无法将服务注入app.config(),因此我无法访问我从登录服务器获取令牌时用于存储令牌的角度本地存储。

angular.module('app').config(function(RestangularProvider, localStorageService) {
    RestangularProvider.setBaseUrl('/api/');

    RestangularProvider.setFullRequestInterceptor(function(element, operation, route, url, headers, params, httpConfig) {
       var authData = localStorageService.get('authorizationData');//ERROR:localStorageService doesn't exist
        };
});

" authorizationData"是本地存储的身份验证令牌。 如您所见,我需要能够使用Restangular提供程序和本地存储。我很感激任何变通方法。谢谢!

1 个答案:

答案 0 :(得分:0)

基本上,您无法将服务注入角度配置.config阶段。配置阶段只能访问提供者/常量(提供者用于可配置服务)

要解决您的问题,请将localStorageService转换为提供者而不是service/factory,然后将其注入配置块,如localStorageProvider

实现它的另一种方法是,您可以使用$injector来检索localStorageService的实例。为此,您需要注入$injector然后使用var

localStorageService = $injector.get('localStorageService'); 

获取localStorageService

的实例