30

在一个大型 AngularJS 应用程序中,我的所有控制器都在一个“controllers.js”文件中,对我来说似乎有点不可维护。有没有更好的方法来做到这一点,例如:

\js\controllers\myController.js
\js\controllers\yourController.js
\js\controllers\ourController.js

这也适用于过滤器、服务、指令等......

4

6 回答 6

49

有很多方法可以组织您的代码。您可以查看以下链接

您可以遵循他们的标准,也可以自己制作。

尝试遵循以下准则:

  • 控制器不应该太长,如果太长那么它正在处理多个责任
  • 尝试在您的系统中使用指令和服务来重用您的代码/逻辑
  • 指令是 Angualrjs 中最强大的东西,尽量发挥它的最大优势。
  • 编写测试;更好的是,您可以尝试使用 AngularJS 练习 TDD
于 2013-07-04T04:23:13.383 回答
9

您可以像模块一样管理它!

比如取用户视图,你做一个目录,这里它的名字是用户!!

user // directory , now put all controller ,service and directive file into it !! 

-- userController.js    //  controller file 

-- userService.js       // service file

-- userDirective.js     // directive file

-- views                // make directory, and put all html file regarding that module into this

  --users.html          // html file

希望对你有帮助!!

于 2014-03-16T20:00:31.113 回答
3

您不妨看看这个社区驱动的指南

该指南描述了组织大型 AngularJS 应用程序的目录结构的最佳实践。

它还对命名和构建 AngularJS 模块、控制器、指令、过滤器和服务提出了建议。

使用AngularJS 应用程序模板查看Lineman.js之类的工具也是值得的。

对于企业 AngularJS 项目,您可能希望查看这个基于ng-boilerplate的kickstarter

于 2014-03-02T15:02:58.880 回答
3

Google 自己的团队提供了一份很好的文档来支持 Shivali 的示例: https ://docs.google.com/document/d/1XXMvReO8-Awi1EZXAXS4PzDzdNvV6pGcuaF4Q9821Es/pub

像这样的东西:

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...
于 2014-07-18T16:03:48.570 回答
3

看看这两个入门项目如何为更大规模的应用程序组织文件:

于 2013-07-24T20:56:12.927 回答
0

检查这一点,使用 CoffeeScript、SCSS 构建您的 Angular 应用程序。

https://github.com/nhim175/modular-angular-skeleton/

于 2014-12-05T15:57:11.567 回答