2013-07-04 11 views
30

W dużej aplikacji AngularJS posiadanie wszystkich kontrolerów w jednym pliku "controllers.js" wydaje mi się trochę nie do utrzymania. Czy istnieje lepszy sposób to zrobić, takich jak:Struktura plików AngularJS

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

i że odnosi się również do filtrów, usług, dyrektyw itd ...

+0

Innym dobrym przykładem może być Yeoman generator kątowej https://github.com/yeoman/generator-angular – Daniel

+0

nadzieję, że będzie pomocny http://tech-blog.maddyzone.com/javascript/code -organisation-angularjs –

+0

Mam nadzieję, że to cię gdzieś zaprowadzi. https://github.com/jofftiquez/angular-app-starter-pack – CENT1PEDE

Odpowiedz

49

Istnieje wiele jest sposobów, aby zorganizować swój kod. Możesz zajrzeć na poniższe linki

Możesz śledzić ich standard lub możesz stworzyć własną.

Postaraj się przestrzegać następujących wytycznych:

  • Contollers nie powinien być zbyt długi, jeśli jest zbyt długi to jest obsługa wielu obowiązków
  • Spróbuj użyć dyrektyw i usług w systemie, aby ponownie użyć kod/logika
  • Dyrektywy to najpotężniejsze rzeczy w Angualrjs, postaraj się uzyskać maksymalne korzyści z tego.
  • Testy zapisu; nawet lepiej można spróbować ćwiczyć TDD z angularjs
+0

Organizowanie rzeczy według typu jest dobre dla małych projektów, ale nie pomaga, jeśli chcesz pożyczyć niektóre funkcje, które pisałeś w przeszłości. To jest źródło pochodzenia funkcji, np. moduł, wchodzi w grę. Naprawdę lubię czytać drugi artykuł na twojej liście. Dziękuję za udostępnienie. – windmaomao

+0

Twój trzeci link to 404 w 2018. – ale10ander

3

Użytkownik może chcesz rzucić okiem na this community-driven guide.

Przewodnik opisuje najlepsze praktyki dotyczące organizacji struktury katalogowej dużej aplikacji AngularJS.

Zawiera także zalecenia dotyczące nazewnictwa i strukturyzacji modułów AngularJS, kontrolerów, dyrektyw, filtrów i usług.

Warto również sprawdzić narzędzie takie jak Lineman.js z AngularJS application template.

W przypadku projektów AngularJS dla przedsiębiorstw możesz chcieć spojrzeć na to kickstarter, które jest oparte na ng-boilerplate.

9

Można nim zarządzać jak modułem!

Na przykład, zrób widok użytkownika, utworzysz jeden katalog, tutaj jego nazwa to użytkownik !!

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 

Mam nadzieję, że to ci pomoże!

+0

Sprawdź poniżej swoją odpowiedź, ładnie się ładuje: http://stackoverflow.com/a/24829399/892955 – marksyzm

3

Jest ładny dokument tam z własnym zespołem Google, że kopię zapasową przykład Shivali za: https://docs.google.com/document/d/1XXMvReO8-Awi1EZXAXS4PzDzdNvV6pGcuaF4Q9821Es/pub

coś takiego:

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... 
Powiązane problemy