gpt4 book ai didi

javascript - 如何从另一个模块获取angularjs模块的值

转载 作者:行者123 更新时间:2023-11-29 15:27:52 25 4
gpt4 key购买 nike

我的 angular.js 应用程序中有两个模块。在 module1(示例名称)中,我定义了一个值

angular.module('module1')
.value('ID', '')
.service('someService', function(ID) {
this.getId = function() {
return ID;
}
this.setId = function(id) {
ID = id;
}
})

我想访问模块 2 中模块 1 的 ID 值。我可以使用 module2 从 module1 访问`

angular.module('module1')

登录控制台将是`

Object {_invokeQueue: Array[39], _configBlocks: Array[1], _runBlocks: Array[1], requires: Array[8], name: "module1"}

当我尝试使用

访问 ID 值或 someService 时
angular.module('module1').service("someService");

angular.module('module1').value("ID");

我越来越奇怪的对象看起来像

Object {_invokeQueue: Array[40], _configBlocks: Array[1], _runBlocks: Array[1], requires: Array[8], name: "module1"}

此外,我不能使用这种样式在初始化时将 module1 包含在 module2 中

angular.module('module2', ['module1']);

因为我已经在module1中包含了module2

angular.module('module1', ['module2']);

最佳答案

您仍然需要像使用 Controller 或服务等一样将其作为依赖项注入(inject)。

如果你想在 Controller 中访问它,你可以使用类似于此的代码

angular.module('module2').controller('MyExistingCtrl', ['ID', function(ID){
console.log(ID);
}]);

或者,按照 John Papa 的风格指南:

angular.module('module2').controller('MyExistingCtrl', MyExistingController)

MyExistingController.$inject = ['ID'];

function MyExistingController(ID){
console.log(ID);
}

阅读更多关于 dependency injection 的信息.

angular documentation 上也有解释对于提供者。向下滚动“值(value)食谱”部分。

关于javascript - 如何从另一个模块获取angularjs模块的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37563207/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com