Javascript 在两个不同的模块和两个不同的js文件之间共享服务
我检查了许多问题,但没有人清楚地给出使用不同js文件的示例。 我正在研究angular js,我陷入了以下问题。 问题是,我想调用不同js文件中的函数,这些函数具有不同的模块。 现在我创建了“服务”,它处理两个模块和两个函数,这是我的代码 First.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", "
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();
});
来自瑞士的爱:)