Доброе утро, У меня возникла проблема, я, похоже, не могу решить.Регистрация HTTP-перехватчика в ленивом загруженном модуле
Я пытаюсь зарегистрировать httpinterceptor в другом месте, чем исходный блок конфигурации.
Делать это работает, как ожидалось:
angular.module('app', ['ngResource'])
.config(function($httpProvider) {
$httpProvider.interceptors.push(function() {
return {
request: function($request) {
console.log($request);
return $request;
}
}
})
})
Но перехватчик является частью субмодуля. Так что мое приложение выглядит следующим образом:
EDIT:
angular.module('app', ['ngResource']);
angular.module('app.submodule', ['ngResource'])
.config(function($httpProvider) {
$httpProvider.interceptors.push(function() {
return {
request: function($request) {
console.log($request);
return $request;
}
}
})
})
Дополнительно подмодуль lazyloaded. Но я не думаю, что это корень проблемы.
Я попытался ссылки на httpProvider в начальном блоке конфигурации, добавив:
$httpProviderReference = $httpProvider;
Так что я мог зарегистрировать перехватчик позже. Это даже не работало бы в блоке initial run(). Осмотр провайдера, похоже, сработал, но перехватчик никогда не вызывается.
Кто-нибудь знает, как обойти это? Я пытаюсь добавить токен аутентификации в заголовок запроса.
Спасибо заранее, Ол
Вы уверены, что angular.module ('app.submodule', []) делает то, что, по вашему мнению, он делает, мне кажется, что он просто создает новый модуль и ничего не знает о другом модуле. – Delta
Я добавил зависимость от ngResource к подмодулю. это то, о чем вы говорили? когда я пытаюсь зарегистрировать перехватчик в методе запуска основных модулей, он также не работает. – olu