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

标签 javascript angularjs node.js

我检查了很多问题,但没有人清楚地给出使用不同 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/

相关文章:

javascript - rails | Javascript同步多个字段,避免无限循环

javascript - 下拉事件状态是 jquery/javascript 中父 div 的问题

AngularJS:使用 ng-repeat 生成复选框

javascript - 具有不同数据的 AngularJS 指令的多个实例?

node.js - 直接从网络中外部node.js服务器上的uv4l服务器读取流

node.js - 如何在发布之前安装已发布的范围包?

javascript - 如何使用webpack将我的JavaScript库代码打包为jQuery一样可扩展?

javascript - Angular ui-router 解析继承

javascript - 如何通过验证将冒号自动放入 mac 地址的文本框中(javascript 或 angularjs)?

node.js - NPM 卸载包不起作用