我的应用程序目录中有以下结构:
scripts/
modules/
module1/
controllers/
MainController.js
module2/
controllers/
MainController.js
main.js
我想要实现的是将每个模块中的控制器放到它自己的命名空间中,例如:
module1.MainController
module2.MainController
因此,当我在html ng-controller="MainController"
指令中使用时,它知道从哪个模块提供它。模块可以相互通信也很好。
请向我解释如何尽可能以最好的方式实现这一目标,如果可能的话?
我发现了这样的事情: http://jsfiddle.net/luisperezphd/j5jzsppv/但我不确定这是否是一个好的解决方案。它使用angular.ng-modules.js。
编辑: 我试图使用Angular.js v.1.3.6。在版本1.2.x上,名称空间没有问题。
答案 0 :(得分:2)
使用常规依赖注入将其中一个模块注入另一个模块:
var moduleTwo = angular.module('moduleTwo', ['otherModule']);
这允许moduleTwo
了解otherModule
。然后,您可以使用服务在控制器之间共享状态。服务是单例(只存在一个实例),因此如果多个控制器使用相同的服务,它们将共享该状态。