Подтвердить что ты не робот

Где я могу разместить фабрики и услуги AngularJS?

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

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

4b9b3361

Ответ 1

Обновление: ближайший ответ ниже не подходит. Пожалуйста, ознакомьтесь с последним дополнением (от 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 - фантастический инструмент для создания приложений с надлежащей структурой каталогов для большие, функциональные приложения Angular. Он даже имеет Grunt и Bower упакован в!

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

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

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