我正在根据最佳做法,彻底地构造我的AngularJS应用程序,其中包括将控制器和应用程序分成不同的脚本文件.
快问:我应该把我的工厂和服务放在哪里?我在询问有工厂和将在单个控制器的范围之外访问的服务以及具有单个控制器范围内的服务.
解决方法
更新:下面的直接答案不再正确.请参阅这个答案的最新补编(2015年3月1日写).
得到它了!据Brian Ford的Building Huuuuuuuge Angular Apps文章称,最佳做法似乎是将服务和工厂连接到一个单独的文件中,如下所示:
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
└── ...
(Psst!如果你想知道,布莱恩·福特是AngularJS团队的一部分,所以他的答案似乎很合适.)
增加(2013年4月24日)
这只是在:Yeoman是一个奇妙的工具,用于生成应用程序,具有适用于大型功能强大的Angular应用程序的正确目录结构.它甚至有Grunt& Bower包装!
附录(2015年3月1日)
根据a comment通过PaoloCargnin,Google实际上推荐了不同的结构,详见this document.结构应如下所示:
sampleapp/
app.css
app.js top-level configuration,route def’ns for the app
app-controller.js
app-controller_test.js
components/
adminlogin/
adminlogin.css styles only used by this component
adminlogin.js optional file for module deFinition
adminlogin-directive.js
adminlogin-directive_test.js
private-export-filter/
private-export-filter.js
private-export-filter_test.js
userlogin/
somefilter.js
somefilter_test.js
userlogin.js
userlogin.css
userlogin.html
userlogin-directive.js
userlogin-directive_test.js
userlogin-service.js
userlogin-service_test.js
index.html
subsection1/
subsection1.js
subsection1-controller.js
subsection1-controller_test.js
subsection1_test.js
subsection1-1/
subsection1-1.css
subsection1-1.html
subsection1-1.js
subsection1-1-controller.js
subsection1-1-controller_test.js
subsection1-2/
subsection2/
subsection2.css
subsection2.html
subsection2.js
subsection2-controller.js
subsection2-controller_test.js
subsection3/
subsection3-1/
etc...