我在creating services的角度文档中看到,通过在模块上定义工厂来创建服务。
但是,我需要定义一个跨多个模块使用的公共服务。 我没有在文档中看到任何东西。可以吗?或者有没有办法从模块创建以外的模块访问服务?
答案 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.
}]);