如何从另一个模块获取 angular.js 模块的值
How to get angular.js module's value from another module
我的 angular.js 应用程序中有两个模块。
在模块 1(示例名称)中,我定义了一个值
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"}
此外,我无法在初始化时将模块 1 包含在模块 2 中,使用此样式
angular.module('module2', ['module1']);
因为我已经在module1中包含了module2
angular.module('module1', ['module2']);
您仍然需要像使用控制器或服务等一样将其作为依赖项注入。
如果您想在控制器中访问它,您可以使用类似于此的代码
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 Recipe" 部分。
我的 angular.js 应用程序中有两个模块。 在模块 1(示例名称)中,我定义了一个值
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"}
此外,我无法在初始化时将模块 1 包含在模块 2 中,使用此样式
angular.module('module2', ['module1']);
因为我已经在module1中包含了module2
angular.module('module1', ['module2']);
您仍然需要像使用控制器或服务等一样将其作为依赖项注入。
如果您想在控制器中访问它,您可以使用类似于此的代码
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 Recipe" 部分。