如何创建角度服务以在不同模块中使用?

时间:2015-08-03 15:40:24

标签: angularjs

我在creating services的角度文档中看到,通过在模块上定义工厂来创建服务。

但是,我需要定义一个跨多个模块使用的公共服务。 我没有在文档中看到任何东西。可以吗?或者有没有办法从模块创建以外的模块访问服务?

2 个答案:

答案 0 :(得分:2)

请查看工作演示:JSFiddle

在某些常见模块中定义服务,例如:

angular.module('mySharedModule', [])
     .service('mySharedService',...

然后在其他模块中,使用

angular.module('myModule', ['mySharedModule'])
    .controller('mySharedService', function (mySharedService) {
    ...

然后您可以在模块mySharedService中使用myModule。您的服务现在可以注入。

答案 1 :(得分:1)

服务必须属于某个模块。但是,要在其他模块中使用它,只需在您想要使用它的模块中包含拥有模块。例如:

angular.module('common', [])
    .factory('yourService', ...);

angular.module('yourModule', ['common'])
    .controller('yourController', ['yourService', function(yourService) {
       // common service available here.
    }]);