3

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

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

我想在 module2 中访问 module1 的 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"}

我也不能在初始化时在module2中包含module1,使用这种风格

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

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

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

1 回答 1

1

您仍然需要像使用控制器或服务等一样将其作为依赖项注入。

如果您想在控制器中访问它,您可以使用与此类似的代码

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);
}

阅读有关依赖注入的更多信息。

它还在供应商的角度文档中进行了解释。向下滚动“价值配方”部分。

于 2016-06-01T08:41:08.490 回答