Javascript 在两个不同的模块和两个不同的js文件之间共享服务

Javascript 在两个不同的模块和两个不同的js文件之间共享服务,javascript,angularjs,node.js,Javascript,Angularjs,Node.js,我检查了许多问题,但没有人清楚地给出使用不同js文件的示例。 我正在研究angular js,我陷入了以下问题。 问题是,我想调用不同js文件中的函数,这些函数具有不同的模块。 现在我创建了“服务”,它处理两个模块和两个函数,这是我的代码 First.js中的第一个模块 var TaskAPP = angular.module('TaskApp', []); TaskAPP.factory("TestService", function () { var users = ["ad", "

我检查了许多问题,但没有人清楚地给出使用不同js文件的示例。 我正在研究angular js,我陷入了以下问题。 问题是,我想调用不同js文件中的函数,这些函数具有不同的模块。 现在我创建了“服务”,它处理两个模块和两个函数,这是我的代码

First.js中的第一个模块

var TaskAPP = angular.module('TaskApp', []);
TaskAPP.factory("TestService", function () {
    var users = ["ad", "bf", "tt"];
    return {
        all: function () {
            return users;
        },
        first: function () {
            return users[0];
        }
    };
});
second.js中的第二个模块

var LabAPP = angular.module('LabApp', ['TaskApp', 'TestService']);
  LabAPP.controller("LabController", function ($scope, TestService) {
       $scope.aa = TestService.first();
});
但在这一页上,出现了错误:$injector:modulerr 模块错误
有人能帮忙吗?

您的
TestService
是在
TaskAPP
上定义的,这就是为什么它不能在
LabApp
中使用。解决方案是只为服务创建一个模块,您希望在模块之间共享

例如,创建一个模块来保存可共享的服务:

angular.module('SharedServices', [])
.service('TestService', function(){
 // code
 }
然后将
SharedServices
模块插入您想要访问服务的模块中:

angular.module('TaskAPP', ['SharedServices'])

然后使用
SharedServices.TestService.fooMethod()

访问您想要的服务。您的错误是将服务名称
TestService
用作模块依赖项-此行:

var LabAPP = angular.module('LabApp', ['TaskApp', 'TestService']);
此操作失败,因为没有名为
TestService
的模块,模块
TaskApp
中只有一个具有该名称的服务。这应该起作用:

var LabAPP = angular.module('LabApp', ['TaskApp']);
  LabAPP.controller("LabController", function ($scope, TestService) {
       $scope.aa = TestService.first();
});
来自瑞士的爱:)