Comment utiliser deux AngularJS services avec le même nom à partir de différents modules?
Censés j'ai deux modules pour AngularJS, par exemple foo
et bar
, et deux d'entre eux de définir un service appelé baz
.
Dans mon application je peux compter sur eux en disant:
var app = angular.module('app', [ 'foo', 'bar' ]);
Alors je peux essayer d'utiliser la baz
service d'un contrôleur en utilisant
app.controller('blaController', [ '$scope', 'baz', function($scope, baz) {
//...
}]);
Comment puis-je définir lequel des deux services de j'aimerais utiliser? Est-il quelque chose de tel qu'un nom pleinement qualifié?
- double possible de Comment les valeurs de référence avec le même nom à partir de différents modules
- double possible de "Namespacing" services en AngularJS
- double possible de les Modules et les collisions de noms dans Angularjs
Vous devez vous connecter pour publier un commentaire.
Le service locator ressemble services par nom (angularjs guide de DI). Cependant "Namespacing" services en AngularJS:
Je suppose que vous pouvez faire le nom complet "à la main": nom du service
foo.baz
etbar.baz
au lieu de la plainebaz
. C'est une forme d'auto-illusion. De plus, l'écriture de cette façon ne fait pas de namespacing réel, mais une autre personne qui lit le code pourrait le penser.(function() { module declaration}());
Quand nous avons deux services avec le même nom, vous devez vous différencier tout en l'utilisant dans votre module. Voyons voir un peu de code ci-dessous pour comprendre comment il fonctionne,
J'ai deux Util services et la nécessité de les différencier,
Dans le fichier de contrôleur, vous pouvez simplement injecter comme ci-dessous.