Подтвердить что ты не робот

Angularjs, определяющие сервисы для одного и того же модуля в разных файлах

У меня есть два файла, в которых я определяю службы в моем приложении angular, но когда я пытаюсь использовать их как в моей директиве, я получаю сообщение об ошибке, что поставщик услуг не найден для какой-либо директивы, которую я определяю второй. Кажется, что одна услуга перезаписывает другую. Если я изменю определение модуля в service2.js на myapp.services2, то он будет работать. Я бы подумал, что я мог бы добавить несколько заводов в один и тот же модуль. Может кто-нибудь указать, что я делаю неправильно?

service1.js:

var services = angular.module('myapp.services',[]);
services.factory('Service1', function() {
    // service code
});

service2.js:

var services = angular.module('myapp.services',[]);
services.factory('Service2', function() {
    // service code
});

mydirective.js:

angular.module('myappdirective', []).directive('myapp', ['Service1', 'Service2',
function(service1,service2) {
    // directive code
}]);
4b9b3361

Ответ 1

Это из документов:

Помните, что использование angular.module('myModule', []) создаст модуль myModule и перезапишет любой существующий модуль с именем myModule. Используйте angular.module('myModule') для извлечения существующего модуля.

Найдено здесь: https://docs.angularjs.org/guide/module

Ответ 2

Это возможно, однако будет подвержено ошибкам, поэтому не рекомендуется

Сделайте небольшую модификацию того, что вы уже делаете

Просто не повторяйте переменную модуля в других файлах, отличных от service1.js, или поместите определение модуля в собственный файл и включите этот JS файл в порядке директивы Module.js, services.js. js, то он будет работать