Структура каталога проекта 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.