Внедрение и использование службы в моем провайдере, а затем использование провайдера в блоке конфигурации
Я пытаюсь внедрить пользовательскую фабрику из одного модуля в пользовательский поставщик из другого модуля. Что я действительно хочу сделать, так это использовать собственную фабрику внутри блока конфигурации, но я не могу, поэтому я пытаюсь настроить провайдера, который использует настраиваемую фабрику, которая затем будет внедрена в конфигурацию.
Я пытался внедрить свою собственную фабрику в провайдера, но я не могу понять, что это правильно. Я не знаю, является ли это синтаксисом или, возможно, мой подход неверен. Мои вопросы:
1.) это вообще возможно?
2.) мой синтаксис правильный?
Вот фабрика:
.factory('myFactory', myFactory);
myFactory.$inject = ['$q', '$http', 'Story'];
function myFactory($q, $http) {
return {
getSomething: getSomething,
}
function getSomething() {
}
}
Вот провайдер:
.provider('myProvider', function() {
return {
$get: function(myFactory) {
function getStuff() {
return myFactory.getSomething().then(function(data){
return data;
})
}
return {
stuff: getStuff
}
}
}
})
Ошибка, которую я получаю, такова:
Cannot read property 'getSomething' of undefined
Это правильное использование поставщика? Я чувствую, что могу что-то упустить. Спасибо!
1 ответ
На этапе настройки вы не можете получить доступ к сервисам:
Во время начальной загрузки приложения, прежде чем Angular завершит создание всех служб, он настраивает и создает экземпляры всех поставщиков. Мы называем это этапом настройки жизненного цикла приложения. На этом этапе службы недоступны, поскольку они еще не созданы.