Page 313 - AngularJS权威教程
P. 313
21.2 模块 293
理的位置应该在scripts/controllers/main.js里,myFilter对象在scripts/filter/myFilter.js里。 19
采用这种结构是有好处的,因为每个文件都很小,根据功能区分,它能让多个开发人员有效
地协同开发一个应用。 20
此外,我们建议为应用编写单元测试时,在根目录的test/下创建跟script目录同样的结构,如
图21-2所示。 21
22
23
24
25
26
27
图21-2 推荐的测试目录结构
创建单模块应用时,我们建议用这样的结构。当创建多模块复合应用时,可以用一个有相似 28
结构的module/目录作为顶层结构。
29
21.2 模块
模块是Angular应用的核心功能。模块包含我们为特定应用编写的所有代码,因而可能会快 30
速膨胀。尽管这趋势也不算坏(模块是一种减少全局作用域干扰的好办法),我们还可以再细分
模块。 31
关于何时创建模块,何时在全局模块中嵌套功能,有几种不同意见。下面两种方式都是把功
能模块化的合理方式。 32
1. 函数模块化
最推荐的方法(我们以及Google团队)是根据功能将应用程序分解为模块。当根据功能分解 33
应用程序时,我们打算聚焦于模块函数而不是包含的函数类型。
34
例如,当编写一个包含主页路由和登录路由的简单应用时,你可以构建两个模块来交付完全
分离的功能。这个主应用看起来可能如下所示:
35
angular.module('app', [
'app.home',
'app:login'
]); 36