2016-04-17 3 views
0

В настоящее время я определяю свои состояния ui-router внутри module.run() с помощью настраиваемого поставщика. Но когда я определяю их внутри module.config(), я получаю ошибку инжектора moduleerr. Может кто-нибудь сказать мне, почему это происходит?Injector moduleerr in AngularJS

Например

angular.module(module_name).run(function(custom_provider)) 

работает отлично, но

angular.module(module_name).config(function(custom_provider)) 

дает ошибку инжектора moduleerr

+1

добавить соответствующий код пожалуйста –

ответ

1

Если Вы вводите то, что работает в перспективе, но не в конфигурации, что означает, что вы впрыснуть экземпляр службы поставщика. Так вот как это работает:

myAngularModule.provider('myService');// declaration 
myAngularModule.config(function(myServiceProvider))// note the 'Provider' added 
myAngularModule.run(function(myService)) 

Так что если вы объявляете поставщик custom_provider в config фазы вы должны вводить его custom_providerProvider.

0

из Docs -

Once the configuration phase is over, interaction with providers is disallowed and the process of creating services starts 

чтения - https://docs.angularjs.org/guide/providers

+0

Истинную но не проблема автора, если он объявить конфигурационный блок даже после того, как блок запуска, в конфигурации блока сначала будет выполнен. Проблема в том, что вы можете вводить только поставщика в фазе конфигурации, а в run/controller/service вы вводите команду/фабрику/фильтр – Walfrat

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