2014-08-15 2 views
0

У меня есть две AngularJS услуги:Расщепление AngularJS модуля Услуги в файлах

service1.js

'use strict'; 
angular.module('myModule', []) 
    .factory('myService1', function() { 
    return { 
     myFunction: function(options) { 
     if (options) { 
      // do stuff 
     } 
    } 
    }; 
}); 

service2.js

'use strict'; 
angular.module('myModule', []) 
    .factory('myService2', function() { 
    return { 
     myFunction: function(options) { 
     if (options) { 
      // do stuff 
     } 
    } 
    }; 
}); 

я узнал трудный путь от official docs, что этот подход будет в основном удалить myService1, потому что модуль получает o verwritten. Мой вопрос: есть ли у меня какие-либо опции? Я бы очень хотел, чтобы мои службы были определены в отдельных файлах. Тем не менее, мне нужен только один модуль.

Благодарим за понимание.

+0

Если они должны быть одинаковыми модуль, тогда вам нужны они в одном файле, иначе вы можете назвать их с разными именами модулей, пока вы объединяете их вместе в один основной модуль, который будет вводить их в качестве зависимостей. – Paullo

ответ

0

Вы должны определить модуль только один раз:

angular.module('myModule', []); 

И затем использовать его столько раз, сколько вам нужно, без установки зависимостей:

angular.module('myModule'); 

Так как вы определяете модуль в отдельный файл, или если вы определяете его в первой службе, вторая должна выглядеть так:

angular.module('myModule') 
    .factory('myService2', function() { ... }); 
+1

И при этом убедитесь, что файлы включены в правильный порядок поэтому вы не пытаетесь добавить сервисы к модулю, который еще не был объявлен. – ivarni

Смежные вопросы