Winkel-Inject $http in config oder Anbieter in laufen
Ich bin mit angular-route-segment in meinem Winkel-app und versuchen, konfigurieren Sie die Segmente aus einem json-feed.
Habe ich Probleme mit diesem, weil ich kann nicht herausfinden, wie zu injizieren $http
in die app.config
Funktion. Dieser schlägt mit Unknown provider: $http
myApp.config(["$http", "$routeSegmentProvider", function ($http, $routeSegmentProvider) {
/* setup navigation here calling $routeSegmentProvider.when a number of times */
}
Also anstatt des Einspritzens von $http in config
, ich habe auch versucht, die Injektion $routeSegmentProvider
in myApp.run
myApp.run(["$http", "$routeSegment", function($http, $routeSegment) {
/* can use $http here to get data, but $routeSegment is not the same here */
/* $routeSegment does not have the when setup method */
}]);
Ich habe auch versucht
myApp.run(["$http", "$routeSegmentProvider", function($http, $routeSegmentProvider)
aber ich bekomme Unknown provider: $routeSegmentProviderProvider <- $routeSegmentProvider
Sie können die Antwort finden Sie hier: stackoverflow.com/questions/15937267/...
Ich glaube, ich kam über, die Beispiel vor, aber ich war nicht in der Lage, es zu bekommen, um aus irgendeinem Grund zu arbeiten. Ich beschlossen zu gehen mit cliff.meyers Antwort für jetzt.
Ich glaube, ich kam über, die Beispiel vor, aber ich war nicht in der Lage, es zu bekommen, um aus irgendeinem Grund zu arbeiten. Ich beschlossen zu gehen mit cliff.meyers Antwort für jetzt.
InformationsquelleAutor gwin003 | 2014-09-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Anbieter kann nur injiziert werden, die in der "config" - phase und nicht die "ausführen" - phase. Umgekehrt kann ein Dienst wie $http wird nicht initialisiert wurden noch in der "config" - phase und wird nur im "run" - phase.
Einen kleinen trick, dies zu umgehen, ist die Definition einer Variablen in einem übergeordneten Gültigkeitsbereich von Funktionen, so dass sowohl die "config" und "run" blockiert hat Zugang zu:
Ich bin nicht sicher, wenn Sie auf Probleme stoßen, versuchen, rufen Sie $routeSegmentProvider.setup() innerhalb der run-phase als ich noch nicht ausprobiert habe. In der Vergangenheit war ich in der Lage, verwenden Sie die gleiche Technik, registrieren http-Antwort-Abfangjäger, die davon abhängen, einige benutzerdefinierte Dienste mit dem $httpProvider.
Scheint ein hack zu benutzen der globalen Variablen.. die Meisten werden Sie ungenützt lassen, weil es front-end JS.
Dieser code wurde ursprünglich verpackt in einer IIFE aber ich hatte es weggelassen aus Platzgründen. Nichts davon erfordert die Verwendung von globalen Bereich, es ist nur der Zugriff über die Schließung.
InformationsquelleAutor cliff.meyers