Извините, что не задал этот вопрос, но я боролся с этой же проблемой и, к счастью, нашел решение. Я не специалист по углу, поэтому мое решение может быть сделано лучше, но надеюсь, что это поможет кому-то там.
Глядя на документации AngularJS»для providers, их пример гласит:
myApp.provider('unicornLauncher', function UnicornLauncherProvider() {});
А потом они показывают, как внедрить этот поставщик в функцию конфигурации:
myApp.config(["unicornLauncherProvider", function(unicornLauncherProvider) {});
Важно отметить, соглашение об именах: имя поставщика не имеет в нем слова «поставщик» в момент объявления, но информция вставки делает.
Как и вы, я также использую именованную функцию для своей конфигурации. Таким образом, мое заявление инъекции конфигурации выглядело как:
angular.module('sample').config(['UserAgentProvider', config]);
Однако, вы делаете это немного отличается от использования .$inject
инжектора. Таким образом, ваш конечный раствор будет выглядеть так:
angular.module('sample').config(config);
config.$inject = ['UserAgentProvider'];
Я тоже с помощью $ INJECT инжектор, но перешел к синтаксису AngularJS документации стиль из-за этого:.
Notice that the unicorn provider is injected into the config function. This injection is done by a provider injector which is different from the regular instance injector, in that it instantiates and wires (injects) all provider instances only.
Не уверен, что если .config(['MyNamedProvider', NamedConfigFunction])
является лучше против NamedConfigFunction.$inject = ['MyNamedProvider'];
Но важным моментом является отказ от «Провайдера» во время объявления поставщика, но добавление его обратно во время инъекции указанного провайдера
У меня такая же проблема. Любое решение? – TSmith