agregar - ¿Cómo usar dos servicios AngularJS con el mismo nombre de diferentes módulos?
ng-href angular 5 (1)
Supongo que tengo dos módulos para AngularJS, por ejemplo, foo
y bar
, y ambos definen un servicio llamado baz
.
En mi aplicación dependo de ellos diciendo:
var app = angular.module(''app'', [ ''foo'', ''bar'' ]);
Entonces puedo intentar usar el servicio baz
en un controlador usando
app.controller(''blaController'', [ ''$scope'', ''baz'', function($scope, baz) {
// ...
}]);
¿Cómo puedo definir cuál de los dos servicios me gustaría usar? ¿Hay algo como un nombre completo?
El localizador de servicios busca los servicios por nombre ( guía angularjs DI ). Sin embargo, los servicios de "espacio de nombres" en AngularJS :
A partir de hoy, AngularJS no maneja las colisiones de espacio de nombres para los servicios, por lo tanto, si tiene 2 módulos diferentes con el servicio con el mismo nombre e incluye ambos módulos en su aplicación, solo habrá un servicio disponible.
Supongo que puede hacer el nombre completo "a mano": nombre el servicio foo.baz
y bar.baz
lugar de simple baz
. Es una especie de autoengaño. Además, escribirlo de esta manera no hace que el espacio de nombres sea real, pero otra persona que lea el código podría pensar que sí.