2013-07-04 6 views
30

Auf einer großen AngularJS-Anwendung, die alle meine Controller in einer einzigen "controllers.js" -Datei hat, scheint mir ein wenig unwartbar zu sein. Gibt es einen besseren Weg, dies zu tun, wie zum Beispiel:AngularJS-Anwendungsdateistruktur

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

und das gilt auch für Filter, Dienstleistungen, Richtlinien etc ...

+0

Eine weitere gute Referenz Yeoman Generator für Winkel https://github.com/yeoman/generator-angular sein könnte – Daniel

+0

hoffen, dass es hilfreich http://tech-blog.maddyzone.com/javascript/code -organization-angularjs –

+0

Hoffe das führt dich irgendwo hin. https://github.com/jofftiquez/angular-app-starter-pack – CENT1PEDE

Antwort

49

Es Los ist Möglichkeiten, um Ihren Code zu organisieren. Sie können

in den folgenden Links sehen Sie können ihre Standard folgen, oder Sie können Ihre eigenen.

Versuchen Sie, die folgenden Richtlinien zu beachten:

  • Contollers sollten nicht zu lang sein, wenn es zu lang ist, dann wird es mehrere Aufgaben
  • Versuchen Handhabung in Ihrem System Richtlinien und Dienste zu benutzen, um Ihre Wiederverwendung Code/Logik
  • Direktiven sind die mächtigsten Dinge in Angualrjs, versuchen Sie, maximalen Vorteil daraus zu ziehen.
  • Schreibtests; noch besser können Sie versuchen, TDD zu üben mit AngularJS
+0

das Organisieren der Dinge nach Typ ist gut für kleine Projekte, aber es hilft nicht, wenn Sie einige der Features ausleihen möchten, die Sie in der Vergangenheit geschrieben haben. Das ist, wo die Entstehung von Funktionalität, z. Modul, kommt ins Spiel. Ich genieße es wirklich, den zweiten Artikel in Ihrer Liste zu lesen. Danke für das Teilen. – windmaomao

+0

Ihr dritter Link ist ein 404 im Jahr 2018. – ale10ander

3

Sie können wünschen Sie einen Blick auf this community-driven guide.

Das Handbuch beschreibt Best Practices zum Organisieren der Verzeichnisstruktur einer großen AngularJS-Anwendung.

Es gibt auch Empfehlungen zur Benennung und Strukturierung von AngularJS-Modulen, Controllern, Direktiven, Filtern und Diensten.

Es lohnt sich auch, ein Werkzeug wie Lineman.js mit der AngularJS application template zu überprüfen.

Für Enterprise-AngularJS-Projekte können Sie sich diese kickstarter ansehen, die auf ng-boilerplate basiert.

9

Sie können es wie modulweise verwalten!

Zum Beispiel, nehmen Sie die Benutzeransicht, Sie machen ein Verzeichnis, hier ist der Name Benutzer!

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 

Hoffe, das wird Ihnen helfen!

+0

Überprüfen Sie meine Antwort unten, unterstützt Sie nett: http://StackOverflow.com/a/24829399/892955 – marksyzm

3

Es gibt ein schönes Dokument gibt, um von Google-eigenen Team, das Shivali Vorbild sichern: https://docs.google.com/document/d/1XXMvReO8-Awi1EZXAXS4PzDzdNvV6pGcuaF4Q9821Es/pub

Etwas wie folgt aus:

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...