在组织AngularJS应用时,你的模块是否都有相同的名称?
When organizing an AngularJS app, should your modules all have the same name?
当组织一个更大的Angular项目时,你的模块应该有相同的名称吗?我在各地都看到过这两种情况的例子。
给出如下结构:
root-app-folder
├── index.html
├── scripts
│ ├── controllers
│ │ └── main.js
│ │ └── ...
│ ├── directives
│ │ └── myDirective.js
│ │ └── ...
│ ├── filters
│ │ └── myFilter.js
│ │ └── ...
│ ├── services
│ │ └── myService.js
│ │ └── ...
│ ├── vendor
│ │ ├── angular.js
│ │ ├── angular.min.js
│ │ ├── es5-shim.min.js
│ │ └── json3.min.js
│ └── app.js
├── styles
│ └── ...
└── views
├── main.html
└── ...
您通常会让每个文件以angular.module('appName')...
开头,还是让它们是唯一的,例如angular.module('thisModuleName)...
?
两者的优点和缺点是什么?
在一个典型的项目中,您将只使用单个模块。一般来说,模块将在app.js
文件中使用数组语法声明:
angular.module('app', ['dep1', 'dep2'])
其中dep1
和dep2
是模块需要的任何依赖项。然后在任何其他文件-例如控制器-您只需将其链接到app
模块,如下所示:
angular.module('app').controller(...) // no dependency array
AngularJS有一个内置的依赖注入机制。你可以把你的应用分成多个不同类型的组件,让AngularJS可以相互注入。模块化应用程序可以更容易地重用、配置和测试应用程序中的组件。
AngularJS包含以下核心类型的对象和组件:
- 工厂
- 提供者
- <
- 常数/gh>
这些核心类型可以通过AngularJS依赖注入机制相互注入。在本文的其余部分中,我将解释如何定义这些组件并将它们相互注入。
相关文章:
- 节点是否需要模块传递带有方括号的arg?这是个错误吗
- AMD格式是否要求模块为单件
- Javascript中的模块模式和揭示模块模式是否仅在创建API时有用;s
- 将事件发送到javascript文档的react本机模块是否正确
- 是否可以从javascript文件中将量角器作为模块运行
- ES6模块进口是否吊装
- 是否有任何理由不在不同的源文件中提供相同的模块
- NodeJS 是否重用已经加载的模块并共享其值?
- Javascript:导入模块是否会更改其中字符串的编码
- 我没有'我不了解require.js是如何处理加载路径的.每次定义模块时是否需要使用require.config
- 是否可以创建一个require.js模块,该模块在加载完成后自行决定
- 检查node.js模块是否可用
- 如何检查angular是否已经有模块
- 检查AngularJS模块是否已启动
- 当作为 CommonJS 模块加载时,Angular 是否全局将自己分配给“window.angular”
- 如何使用请求 npm 模块判断 http 请求是否完成
- 是否可以要求项目目录外部的模块没有相对路径
- 垃圾回收器是否从 NodeJS 中的内存中抽打过时的所需模块
- 节点 JS Express 模块是否异步处理请求
- 对角度模块使用单个全局变量是否是一种反模式