Вызов службы в функции в конфигурации () в AngularJS
У меня есть этот блок config() в приложении AngularJS:
.config(function(RestangularProvider, apiServerConstants) {
RestangularProvider.setBaseUrl(apiServerConstants.url + apiServerConstants.apiPath + apiServerConstants.apiVersion);
RestangularProvider.setFullRequestInterceptor(function(element, operation, route, url, headers, params, httpConfig) {
// access local storage
return {
element: element,
params: _.extend(params, {single: true}),
headers: headers,
httpConfig: httpConfig
};
});
});
Как я могу добавить свой localStorageService (из grevory/angular-local-storage) в функцию, вызываемую RestangularProvider.setFullRequestInterceptor()
, Мне нужно настроить функцию перехватчика так, чтобы она вызывала localStorageService.get()
чтобы иметь возможность доступа к данным в локальном хранилище, чтобы включить их в каждый повторный запрос, который я делаю.
PS: я знаю, что в config() или run () вы можете вызывать только провайдеры или константы. Мне интересно, может ли код в функции внутри setFullRequestInterceptor (), которая вызывается только во время выполнения, каким-то образом создавать экземпляр или получать localStorageService?
1 ответ
Это невозможно
Вы можете только ввести в .config
следующие предметы:
- КОНСТАНТА
- ЗНАЧЕНИЕ
- ПРОВАЙДЕР
Смотрите официальный документ здесь, я цитирую:
Блоки конфигурации - выполняются на этапе регистрации и настройки провайдера. Только провайдеры и константы могут быть введены в блоки конфигурации. Это необходимо для предотвращения случайного создания служб до их полной настройки.