Структура каталога проекта Ember.js
Есть ли хороший учебник или документ Ember.js, описывающий структуру каталогов для моделей/представлений/контроллеров, app.js и способ ссылки на эти файлы в корневом файле index.html.
- Файл для создания "Ember.Application.create"?
- порядок включения (models.js, apps.js, controllers.js)?
Ответы
Ответ 1
По-видимому, нет четкого соглашения, но в настоящее время многие люди, похоже, используют Yeoman и официальный генератор Ember https://github.com/yeoman/generator-ember
В то время как я ценю "открытый" характер учебников Ember, одна из приятных вещей о Rails - это соглашение о размещении файлов. Когда мы нанимаем нового разработчика, нам не нужно давать объяснения о нашей структуре каталогов... Я надеюсь, что Ember скоро установит официальный стандарт.
Ответ 2
Этот учебник Dan Gebhardt очень помог мне в настройке моей структуры проекта и выяснении того, как включать файлы.
Ответ 3
Проект ember-skeleton имеет разумный пример компоновки проекта для гребного конвейера. Они делают это примерно так (из README):
ember-skeleton
├── Assetfile - App build file
├── Gemfile - Package dependencies for rakep/rack
├── Gemfile.lock - Here be dragons: don't touch, always include
├── app - App specific code
│ ├── css - App CSS or SCSS (.scss)
│ ├── lib - App code, *modularized during build*
│ ├── modules - Module code, *already modularized*
│ ├── plugins - Plugins (e.g. jquery.jsonrpc.js)
│ │ └── loader.js - JS module loader
│ ├── static - Static files, never touched, copied over during build
│ ├── templates - Handlebars templates, *modularized during build*
│ ├── tests - QUnit application tests
│ └── vendor - Vendor code, *modularized during build*
├── assets - Built out asset files, minified in production
│ ├── app.css - Built out app CSS/SCSS
│ ├── app.js - Built out app JS
│ └── loader.js - Built out JS module loader
├── config.ru - Rack development web server configuration
├── index.html - The app entry point
├── tests - QUnit testing files
│ ├── index.html - The testing entry point
│ ├── qunit - Testing support files
│ └── run-tests.js - The PhantomJS QUnit test runner
└── tmp - Temporary build files used by rakep
Ответ 4
У меня есть макет, который мне очень нравится
app.js - это основной файл приложения и включает настройки и маршрутизатор
views.js - содержит представления, используемые в приложении, хотя я обычно теперь разделяю это на homeView.js navigtaionView.js и т.д.
dataModels.js - здесь я держу все объекты модели данных для приложения
dataSources.js - я использую это для загрузки datamodels или массивов данных из любых вызовов api, которые я делаю
accountController.js - класс контроллера, в прилагаемом образце у меня также есть emailMessagingController и smsMessagingController
Здесь вы можете найти мой образец проекта
https://github.com/bwship/neptunejs
и файлы coffeescript для ember здесь
https://github.com/bwship/neptunejs/tree/master/public/coffeescripts
и, наконец, файл jad для макета и индекса, показывающий, как я добавляю их здесь
https://github.com/bwship/neptunejs/tree/master/views
Я действительно хочу начать использовать стиль данных ember, но выложил несколько твердых приложений, используя файлы dataSources и dataModels.