2016-04-17 11 views
0

Ich definiere derzeit meine ui-router states innerhalb der module.run() mit einem benutzerdefinierten Anbieter. Aber wenn ich sie innerhalb von module.config() definiere, bekomme ich einen Injektor-Modulerr-Fehler. Kann mir jemand sagen, warum das passiert?Injektor moduleerr in AngularJS

Zum Beispiel

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

funktioniert gut, aber

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

gibt den Injektor moduleerr Fehler

+1

einige relevanten Codes fügen Sie bitte –

Antwort

1

Wenn Sie etwas injizieren, die in Lauf funktioniert, aber nicht in Config, dass Sie die Mittel injizieren Serviceinstanz des Providers. Also hier ist, wie es funktioniert:

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

Also, wenn Sie einen Anbieter custom_provider in der config Phase deklarieren Sie es als custom_providerProvider injizieren müssen.

0

aus der Dokumentation -

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

Lese - https://docs.angularjs.org/guide/providers

+0

wahr, aber nicht das Problem des Autors, wenn er einen Konfigurationsblock auch nach einem Laufblock deklariert, Konfigurationsblock wird zuerst ausgeführt. Das Problem ist, dass Sie den Provider nur in der Konfigurationsphase injizieren können und in run/controller/service injizieren Sie service/factory/filter – Walfrat

Verwandte Themen