如何在两个角度模块中使用相同的服务

时间:2015-02-16 08:03:21

标签: javascript angularjs

我试图谷歌这个,但我没有得到我正在寻找的答案。我有两个单独的模块(在单独的html页面 - 这些执行完全不相关的任务)。我创建了一个授权服务并将其与模块1相关联,我通过DI在我的控制器中使用这个$ auth服务。现在我想在module2中使用相同的服务。我怎样才能做到这一点? 这就是服务的样子:

module1.service('$authService', function($http) {
   this.authorise = function(userid,accessKey) {
       // logic for performing auth
   };
});

2 个答案:

答案 0 :(得分:5)

您应该创建第三个公共模块来托管authService,并在其他两个模块中添加依赖项。

angular.module("Auth", [])
  .service("authService", function($http){ });

并且,在另一个文件/模块/应用程序中:

angular.module("module1", ["Auth"])
  .controller("MainCtrl", function(authService){
   });

(与第二个模块相同:angular.module("module2", ["Auth"])

答案 1 :(得分:1)

创建第二个模块时,说module2提供了module1的依赖,如

angular.module('module2',['module1']);

现在您可以将module1的服务用于module2中,与在module1中使用的服务相同。