我检查过很多问题,但没有人清楚地给出使用不同js文件的示例。 我正在研究角度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 模块错误 任何人都可以帮忙吗?
答案 0 :(得分:1)
Object object = event.getSource();
if (object instanceof MaterialImage) {
MaterialImage image = (MaterialImage) object;
String type = image.getTitle();
if (type.equals("simpleLine")) {
...
}
上定义了TestService
,这就是TaskAPP
无法使用的原因。解决方案是创建一个仅用于服务的模块,您希望跨模块共享。
例如,创建一个模块只是为了保存可共享的服务:
LabApp
然后将angular.module('SharedServices', [])
.service('TestService', function(){
// code
}
模块注入您想要访问服务的模块中:
SharedServices
然后使用angular.module('TaskAPP', ['SharedServices'])
答案 1 :(得分:1)
您的错误是使用服务名称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();
});
来自瑞士的爱:)。