我检查了很多问题,但没有人清楚地给出使用不同 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();
});
但是在这个页面上,发生了错误 Error: $injector:modulerr 模块错误 谁能帮忙?
最佳答案
您的TestService
是在TaskAPP
上定义的,这就是它不能在LabApp
中使用的原因。解决方案是为服务创建一个模块,您希望跨模块共享。
例如,创建一个模块来保存可共享的服务:
angular.module('SharedServices', [])
.service('TestService', function(){
// code
}
然后将 SharedServices
模块注入(inject)到您要从中访问服务的任何模块中:
angular.module('TaskAPP', ['SharedServices'])
然后使用 SharedServices.TestService.fooMethod()
访问您想要的服务
关于javascript - 在两个不同的模块和两个不同的js文件之间共享服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35299247/