AngularJS 应用程序文件结构

IT技术 javascript angularjs directory-structure
2021-02-26 13:42:37

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

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

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

6个回答

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

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

尝试遵循以下准则:

  • 控制器不应该太长,如果它太长那么它正在处理多个职责
  • 尝试在您的系统中使用指令和服务来重用您的代码/逻辑
  • 指令是 Angualrjs 中最强大的东西,尽量发挥它的最大优势。
  • 编写测试;更好的是你可以尝试用 AngularJS 练习 TDD
@ale10ander 感谢您指出这一点。该结构适用于 Angular 1,将更新我的答案。
2021-05-01 13:42:37
按类型组织东西对小项目很有用,但如果你想借用你过去写的一些功能,这无济于事。这就是功能起源的地方,例如。module,发挥作用。我真的很喜欢阅读您列表中的第二篇文章。感谢分享。
2021-05-07 13:42:37
您的第三个链接是 2018 年的 404。
2021-05-08 13:42:37

你可以像module一样管理它!!

例如,以用户视图,你创建一个目录,这里它的名字是用户!!

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

希望能帮到你!!

在下面查看我的答案,很好地支持您:stackoverflow.com/a/24829399/892955
2021-05-16 13:42:37

了解这两个入门项目如何为大型应用程序组织文件:

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

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

它还就 AngularJS module、控制器、指令、过滤器和服务的命名和结构提出建议。

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

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

谷歌自己的团队有一个很好的文档支持 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...