1

我的应用程序目录中有以下结构:

scripts/
   modules/
     module1/
       controllers/
          MainController.js
     module2/
       controllers/
          MainController.js
   main.js

我想要实现的是将每个模块中的控制器放到自己的命名空间中,例如:

module1.MainController
module2.MainController

因此,当我在 htmlng-controller="MainController"指令中使用时,它知道从哪个模块提供服务。模块可以相互通信也很好。

请向我解释如何以最好的方式实现这一目标,如果可能的话?


我发现了这样的东西:http: //jsfiddle.net/luisperezphd/j5jzsppv/但我不确定这是否是一个好的解决方案。它使用angular.ng-modules.js


编辑:我正在尝试使用 Angular.js v.1.3.6。在 1.2.x 版本上,命名空间没有问题。

4

1 回答 1

2

使用常规依赖注入将其中一个模块注入另一个:

var moduleTwo = angular.module('moduleTwo', ['otherModule']);

这允许moduleTwootherModule. 然后,您可以使用服务在控制器之间共享状态。服务是单例的(只会存在一个实例),因此如果多个控制器使用相同的服务,它们将共享该状态。

于 2014-12-15T17:40:53.647 回答