2016-02-05 2 views
1

Я использую RestangularProvider для установки перехватчика $ http для ввода заголовка аутентификации во все рестатулярные запросы. Проблема в том, что вы не можете внедрять службы в 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» - это мой токен аутентификации, хранящийся локально. Как вы можете видеть, мне нужно иметь возможность использовать ретрансляционный провайдер и локальное хранилище. Буду признателен за любые обходные пути. Спасибо!

ответ

0

В принципе вы не можете вводить услугу в угловую конфигурацию .config фаза. Только провайдеры/постоянные доступны в фазу конфигурации (Провайдеры предназначены для настраиваемой службы)

Чтобы решить проблему, либо Transfor localStorageService поставщик вместо service/factory, а затем вводят его в конфигурационный блок, как localStorageProvider.

Другой способ для достижения этого - вы можете использовать $injector для извлечения экземпляра localStorageService. Для этого нужно вводить $injector, а затем использовать Var

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

для получения экземпляра из localStorageService

Смежные вопросы