角度项目结构(文件夹,路由,服务等)?

时间:2016-03-21 10:12:15

标签: angularjs

开发大型(企业)角度Web应用程序的指南应该如何?

  • 文件夹结构
  • 多个观点的路线
  • 模块,配置,服务,指令,控制器和个人javascript文件。
  • 自定义过滤器,视图(html)

如果您的目录结构如此(并且您的应用很大)我应该这样模块化吗? :

  

应用

     
      
  • controllers.js
  •   
  • filters.js
  •   
  • directives.js
  •   
  • app.js
  •   
  • services.js
  •   
  • 的index.html
  •   

我应该在根 myApp 模块或子模块中注入(包含)每个已安装的模块吗?

angular.module('myApp',[
   'tasks',
   'documents',
   'widgets',
   'customModuleForWidgets'
]);

 angular.module('widgets',[
   'customModuleForWidgets'
]);

路由配置应该在一个地方(partent模块)还是在它自己的模块中?

angular.module('myApp',[
  'ui.router'
])
  .config(['$routeProvider', '$stateProvider', function ($routeProvider, $stateProvider) {
    $stateProvider
     .state("widget-areaState", {
       url: "/widget-area",
       templateUrl: 'views/dashboard-widget.html',
       controller: 'widgetCtrl'
     });
     .state(...) // other state
     .state(...) // other state
  })
;

2 个答案:

答案 0 :(得分:1)

您可以查看John Papa的guide。它包含许多不同的东西和项目结构。这是一个很好的指南,开始一个有很多方法的大角度项目。如果你想跟随它,你可以自己决定每个确切的项目,但大多数似乎非常合理。在结构的情况下,他建议逐个文件夹:

app/
    app.module.js
    app.config.js
    components/
        calendar.directive.js
        calendar.directive.html
        user-profile.directive.js
        user-profile.directive.html
    layout/
        shell.html
        shell.controller.js
        topnav.html
        topnav.controller.js
    people/
        attendees.html
        attendees.controller.js
        people.routes.js
        speakers.html
        speakers.controller.js
        speaker-detail.html
        speaker-detail.controller.js
    services/
        data.service.js
        localstorage.service.js
        logger.service.js
        spinner.service.js
    sessions/
        sessions.html
        sessions.controller.js
        sessions.routes.js
        session-detail.html
        session-detail.controller.js

答案 1 :(得分:0)

你可以使用这样的项目结构。

enter image description here