angularjs: module names conflict
A sample to demonstrate last wins approach and shortcoming of angularjs module resolution
by miensol
JavaScript
var A = angular.module('A', []);
A.factory('serviceA', function(){
return function(){
console.log('using serviceA defined in module A');
};
});
var B = angular.module('B', ['A']);
B.factory('serviceB', function(serviceA){
return function(){
console.group('using serviceB defined in module B');
serviceA();
console.groupEnd();
};
});
var C = angular.module('C', ['A']);
C.factory('serviceA', function(){
return function(){
console.log('using serviceA defined in module C');
};
});
C.factory('serviceC', function(serviceA){
return function(){
console.group('using serviceC defined in module C');
serviceA();
console.groupEnd();
};
});
var $injector = angular.injector(['A','B','C']);
$injector.invoke(function(serviceA, serviceB, serviceC){
serviceA();
serviceB();
serviceC();
});