Модули и пространство имен / столкновение имен в AngularJS

Рассмотрим следующий jfiddlehttp://jsfiddle.net/bchapman26/9uUBU/29/

//angular.js example for factory vs service
var app = angular.module('myApp', ['module1', 'module2']);

var service1module = angular.module('module1', []);

service1module.factory('myService', function() {
    return {
        sayHello: function(text) {
            return "Service1 says \"Hello " + text + "\"";
        },
        sayGoodbye: function(text) {
            return "Service1 says \"Goodbye " + text + "\"";
        }
    };
});

var service2module = angular.module('module2', []);

service2module.factory('myService', function() {
    return {
        sayHello: function(text) {
            return "Service2 says \"Hello " + text + "\"";
        },
        sayGoodbye: function(text) {
            return "Service2 says \"Goodbye " + text + "\"";
        }
    };
});

function HelloCtrl($scope, myService) {
    $scope.fromService1 = myService.sayHello("World");
}

function GoodbyeCtrl($scope, myService) {
    $scope.fromService2 = myService.sayGoodbye("World");
}​

У меня есть 2 модуля (module1 и module2). И module1, и module2 определяют службу, которая называется myService. Это создает конфликт имен на myService в Angular, когда оба модуля импортируются в myApp. Похоже, AngularJs просто использует второе определение сервиса, не предупреждая вас о возможной проблеме.

Очень большие проекты (или просто повторное использование модулей в целом) могут столкнуться с конфликтом имен, что может быть трудно отладить.

Есть ли способ добавить префикс имени к имени модуля, чтобы имяслучилось?

Ответы на вопрос(4)

Ваш ответ на вопрос