Angulaire Injecter $http dans config ou fournisseur de run
Je suis en utilisant angulaire de l'itinéraire du segment dans mon angulaire de l'application et d'un train de configurer les segments à partir d'un flux json.
J'ai eu des problèmes avec cela, parce que je ne peux pas comprendre comment injecter $http
dans le app.config
fonction. Cette échoue avec Unknown provider: $http
myApp.config(["$http", "$routeSegmentProvider", function ($http, $routeSegmentProvider) {
/* setup navigation here calling $routeSegmentProvider.when a number of times */
}
Donc au lieu d'injecter $http dans config
, j'ai aussi essayé d'injecter $routeSegmentProvider
en 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 */
}]);
J'ai aussi essayé
myApp.run(["$http", "$routeSegmentProvider", function($http, $routeSegmentProvider)
mais je reçois Unknown provider: $routeSegmentProviderProvider <- $routeSegmentProvider
- Vous pouvez trouver votre réponse ici: stackoverflow.com/questions/15937267/...
- Je pense que je suis tombé sur cet exemple avant, mais je n'ai pas réussi à le faire fonctionner pour une raison quelconque. J'ai décidé d'aller avec cliff.meyers réponse pour l'instant.
Vous devez vous connecter pour publier un commentaire.
Fournisseurs ne peut être injecté dans le "config" de la phase et de ne pas le "run" de phase. À l'inverse, un service tel que $http n'aura pas été initialisé encore dans la "config" de phase et ne sera disponible que dans le "run" de phase.
Une petite astuce pour contourner cela est de définir une variable dans la portée de la fonction de sorte que la "config" et "exécuter en" blocs peuvent y avoir accès:
Je ne suis pas sûr si vous rencontrez des problèmes en essayant d'appel de $routeSegmentProvider.setup() dans la phase d'exécution que je n'ai pas essayé. Dans le passé, j'ai été en mesure d'utiliser la même technique pour enregistrer la réponse http intercepteurs qui dépendent de certains services personnalisés avec le $httpProvider.