对于大型项目,我建议每个模块使用一个目录,每个“事物”(服务、价值、工厂、控制器......)一个文件。Html 部分应与它们各自的指令或控制器一起存储在每个模块目录中。
我们使用这种方法已经有一段时间了,效果确实很好。该项目由 maven 构建(后端使用 Java),所有 js 文件都连接到每个 Angular 应用程序一个文件中,另外一个文件用于在 Angular 应用程序之间共享的组件。如果您使用maven ,请查看yuicompressor-maven-plugin中的聚合。
因为我们每个模块有几个 js 文件,所以我们需要一种方法来只创建一次模块,并且在我们在每个 js 文件中注册“事物”之前。
我们提出的解决方案是在每个模块目录中添加一个名为 0-module.js 的文件,其中包含模块创建语句。yuicompressor-maven-plugin 将首先将此添加到聚合文件中。
示例文件结构:
mymodule/
0-module.js
>angular.module('mymodule', []); //Create module
MyController.js
>angular.module('mymodule').controller("MyController", [... // Register MyController
myTemplate.html