2013-04-05 4 views
11

Я работаю над тем, чтобы четко структурировать приложение AngularJS в соответствии с лучшими практиками, включая разделение контроллеров и приложений на разные файлы сценариев.Где я могу разместить фабрики и услуги AngularJS?

Быстрый вопрос: Где я должен поставить свои заводы и услуги? Я спрашиваю в контексте наличия заводов &, которые будут доступны за пределами области действия одного контроллера, а также с некоторыми, входящими в сферу действия одного контроллера.

ответ

8

Обновление: немедленный ответ ниже уже не правильный. Пожалуйста, ознакомьтесь с последним дополнением (написано 1 марта 2015 г.) к этому ответу.

Получил это! Согласно статье Брайана Форда на Building Huuuuuuuge Angular Apps, лучшая практика, как представляется, для подключения услуги и фабрики в приложение в отдельном файле, например, так:

root-app-folder 
├── index.html 
├── scripts 
│ ├── controllers 
│ │ └── main.js 
│ │ └── ... 
│ ├── directives 
│ │ └── myDirective.js 
│ │ └── ... 
│ ├── filters 
│ │ └── myFilter.js 
│ │ └── ... 
│ ├── services 
│ │ └── myService.js 
│ │ └── ... 
│ ├── vendor 
│ │ ├── angular.js 
│ │ ├── angular.min.js 
│ │ ├── es5-shim.min.js 
│ │ └── json3.min.js 
│ └── app.js 
├── styles 
│ └── ... 
└── views 
    ├── main.html 
    └── ... 

(PSST В случае, если вам интересно, Брайан Форд . часть команды AngularJS, поэтому его ответ кажется довольно законны)

Сложение (24 апреля 2013)

Это только в: Yeoman является фантастическим инструментом для создания приложений с соответствующей директории структура для больших, функциональных Угловых приложений. Он даже имеет Grunt & Bower Упаковано в!

Добавление (1 марта 2015)

Согласно a comment через PaoloCargnin, Google фактически рекомендует другую структуру, чем подробно this document. Структура должна выглядеть так:

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

Это не то, как Google документировал это. Я предлагаю вам следовать этой структуре https://docs.google.com/document/d/1XXMvReO8-Awi1EZXAXS4PzDzdNvV6pGcuaF4Q9821Es/pub – PaoloCargnin

Смежные вопросы