Як створити додаток Ember.js


105

Було важко йти в ногу з розвитком Ember JS, коли наближалася (і досягла!) Версії 1.0.0. Навчальні посібники та документація прийшли і пішли, що призводить до великої плутанини щодо передового досвіду та намірів оригінальних розробників.

Моє запитання саме в цьому: Які найкращі практики для Ember JS? Чи є оновлені навчальні посібники чи робочі зразки, які показують, як призначено використовувати Ember JS? Зразки коду були б чудовими!

Дякую всім, особливо розробникам Ember JS!


7
Це запитання посідає перше місце для пошуку в Google "Підручника EmberJS", але насправді це питання не відповідає. Це справді питання про 2 посилання в Інтернеті. Чи можете ви змінити це питання, щоб відповідати заголовку? Я думаю, що найкращою відповіддю буде той, хто насправді когось переніс у процесі створення програми з EmberJS.
Джордж Стокер

Відповіді:


17

Існує важливий проект, яким повинні скористатися як нові, так і ветеранські розробники Ember.js:

Ембер-CLI

Хоча це вимагає певного рівня комфорту за допомогою командного рядка, ви можете створити сучасний проект Ember із рекомендованими спільнотою кращими практиками за лічені секунди.

Хоча налаштувати проект Ember.js важко, як у відповіді Майка Грассотті, ви не повинні робити цього для виробничого коду. Особливо, коли у нас є такий потужний і простий у використанні проект, як Ember-CLIпоказати нам щасливий шлях Єгуди .


1
Дякую Метт! Я зробив це прийнятою відповіддю на прямий трафік до Ember-CLI.
Крейг Лабенц

Щойно почав використовувати Ember вперше пару днів тому, і Ember-CLI досить просто почати і використовувати. Мінус лише в тому, що він вводить багато складних можливостей, які ви, можливо, не хочете / не потребуєте (хоча складність, яку можна не помітити, якщо ви довіряєте особі). Bower і JSHint, Ember-CLI і Travis CI та EditorConfig і Git, конфігураційні файли, а також інші речі, такі як Broccoli для активів та PhantomJS для тестування ...
JKillian

Справедлива точка @JKillian. Я знаю, що існує стурбованість кривою навчання Ембер з цих причин. Хоча Ember-cli вводить деякі складності (Ember-data & Broccoli), це усуває значну плутанину щодо вимог постачальника та структурування вашого проекту. Отже, є зерно солі.
Метт Дженсен

1
Повністю погоджуйтеся зі щасливим шляхом Ембер CLI! Попередній посібник швидкого старту Майка Грассотті нижче був би ідеальним "наступним кроком", якби не так ... застаріло. Для тих, хто хоче створити програми Ember 2.0, найкраще, що стосується найкращих практик, - це переконатися, що ви розумієте основні поняття: моделі, маршрути, послуги, компоненти тощо. Документи Ember - це чудовий ресурс, але оскільки я я не натрапив на єдиний оновлений посібник, що поєднує
Frank Treacy

110

Мінімальний посібник швидкого старту Майка Грассотті

Цей посібник із швидкого запуску повинен отримати вас від нуля до трохи більше нуля за пару хвилин. Закінчивши, ви повинні відчувати себе деякою впевненістю, що ember.js насправді працює, і, сподіваємось, вам буде достатньо цікаво дізнатися більше.

ПОПЕРЕДЖЕННЯ: Не спробуйте лише цей посібник, тоді подумайте, що вугілля відсмоктує причину "Я можу написати цей швидкий путівник краще в jQuery або Fortran" або будь-що інше. Я не намагаюся продати вас на вугіллі чи що-небудь інше, цей посібник є трохи більше, ніж привіт-світ.

Крок 0 - Перевірте jsFiddle

цей jsFiddle має весь код з цієї відповіді

Крок 1 - Включіть ember.js та інші необхідні бібліотеки

Для Ember.js потрібні як jQuery, так і рулі. Переконайтеся, що ці бібліотеки завантажені перед ember.js:

<script type='text/javascript' src='http://code.jquery.com/jquery-1.9.1.js'></script>
<script type='text/javascript' src="http://cdnjs.cloudflare.com/ajax/libs/handlebars.js/1.0.0-rc.3/handlebars.js"></script>
<script type='text/javascript' src="http://cdnjs.cloudflare.com/ajax/libs/ember.js/1.0.0-rc.1/ember.js"></script>

Крок 2 - Опишіть користувальницький інтерфейс програми, використовуючи один або кілька шаблонів рульової панелі

За замовчуванням ember замінить тіло вашої html-сторінки, використовуючи вміст одного або декількох шаблонів рульових панелей. Колись ці шаблони будуть в окремих .hbs-файлах, зібраних зірочками або, можливо, grunt.js. Зараз ми збережемо все в одному файлі та використовуватимемо теги скриптів.

Спочатку додамо один applicationшаблон:

<script type="text/x-handlebars" data-template-name="application">
  <div class="container">
    <h1>Ember.js is easy?<small> Minimum Viable Ember.js QuickStart Guide</small></h1>
    <p>{{message}}</p>
  </div>
</script>

Крок 3 - Ініціалізуйте заявку на вугілля

Просто додайте ще один блок скриптів, App = Ember.Application.create({});щоб завантажити ember.js та ініціалізувати свою програму.

<script type='text/javascript'>
  App = Ember.Application.create({});
</script>

Це все, що вам потрібно для створення базового додатка з вугіллям, але це не дуже цікаво.

Крок 4: Додайте контролер

Ембер оцінює всі шаблони рульових елементів у контексті контролера. Отже, applicationшаблон має відповідність ApplicationController. Ember створюється автоматично, якщо ви не визначите його, але тут давайте налаштуємо його, щоб додати властивість повідомлення.

<script type='text/javascript'>
App.ApplicationController = Ember.Controller.extend({
    message: 'This is the application template' 
});
</script>

Крок 5: Визначте маршрути + більше контролерів та шаблонів

Маршрутизатор Ember дозволяє легко комбінувати шаблони / контролери в програму.

<script type='text/javascript'>
  App.Router.map(function() {
    this.route("index", { path: "/" });
    this.route("list", { path: "/list" });
  });

  App.IndexController = Ember.Controller.extend({
    message: 'Hello! See how index.hbs is evaluated in the context of IndexController' 
  });

  App.ListRoute = Ember.Route.extend({
    setupController: function(controller) {
      controller.set('content', ['angular.js', 'backbone.js', 'ember.js']);
    }
  });

</script>

Щоб зробити цю роботу, ми змінюємо наш шаблон програми, додаючи {{outlet}}помічник. Маршрутизатор Ember виведе відповідний шаблон у розетку залежно від маршруту користувача. Ми також використовуватимемо {{linkTo}}помічник для додавання навігаційних посилань.

    <script type="text/x-handlebars" data-template-name="application">
      <div class="container">
          <h1>Ember.js is easy?<small> Minimum Viable Ember.js QuickStart Guide</small></h1>
        <p>{{message}}</p>
        <div class="row">
          {{#linkTo index class="span3 btn btn-large btn-block"}}Home{{/linkTo}}
          {{#linkTo list class="span3 btn btn-large btn-block"}}List{{/linkTo}}
        </div>
        {{outlet}}
      </div>
    </script>

    <script type="text/x-handlebars" data-template-name="list">
      <h3 class="demo-panel-title">This is the list template</h3>
      <ul>
      {{#each item in content}}
          <li>{{item}}</li>
      {{/each}}
       </ul>
    </script>

    <script type="text/x-handlebars" data-template-name="index">
      <h3 class="demo-panel-title">This is the index template</h3>
      <p>{{message}}</p>
    </script>

Готово!

Робочий приклад цієї програми доступний тут .

Ви можете використовувати цю jsFiddle як вихідну точку для власних програм з янтар

Наступні кроки...

Для довідки, моя оригінальна відповідь:


Моє запитання до будь-якого експерта Ember.js, і, звичайно, відповідних авторів підручника: Коли я повинен використовувати шаблони дизайну з одного підручника, а коли з іншого?

Ці два навчальні посібники представляють найкращі практики на час їх написання. Напевно, є щось, що можна дізнатися у кожного, і те, на жаль, приречене застаріти, оскільки ember.js рухається дуже швидко. З двох, Трек набагато актуальніший.

Які компоненти кожного з них є особистими вподобаннями, а які компоненти стануть важливими в міру дозрівання мого додатка? Якщо ви розробляєте нову програму Ember, я б не рекомендував дотримуватися підходу Code Lab. Це просто занадто застаріло, щоб бути корисним.

У дизайні Code Lab Ембер, здається, наближається до існуючої в додатку (хоча це 100% його звичайного JS), тоді як додаток Трека, здається, живе більше в Ембер.

Ваш коментар баг-он. CodeLab використовує переваги основних компонентів вугілля та отримує доступ до них з глобальної сфери. Коли це було написано (9 місяців тому), це було досить поширеним явищем, але сьогодні найкраща практика написання програм із вугрів набагато ближче до того, що робив Трек.

Однак, навіть підручник Трека стає застарілим. Компоненти, які були потрібні ApplicationViewі ApplicationControllerтепер генеруються самими рамками.

На сьогоднішній день самим актуальним ресурсом є набір посібників, опублікований на веб-сайті http://emberjs.com/guides/ - вони були написані з нуля протягом останніх тижнів і відображають останню (перед випуском) версію ember.

Я б також ознайомився з проектом для перегляду треків тут: https://github.com/trek/ember-todos-with-build-tools-tests-and-other-modern-conveniaries

Редагувати :

@ sly7_7: Я також наведу інший приклад, використовуючи дані ember https://github.com/dgeb/ember_data_example


1
Я спочатку написав Code Lab як спосіб змусити людей намуситись на рамки Ember та MVC, але, на жаль, я не встиг її продовжувати, і це здається, що це змінилося достатньо, щоб інші люди створили кращі ресурси. Особисто я з тих пір перейшов на використання Angular для більшості моїх проектів, я вважаю, що він вимагає менше JavaScript і трохи простіше обернути голову. Ваш вибір MVC повністю особистий, тому не дозволяйте мені керувати вами.
PeteLe

1
Зайшли на emberjs.com/guides і хоча пояснення були надзвичайно добре зроблені, приклади не були достатньо завершеними, щоб їх можна було зрозуміти, і вони зазнали когнітивних посилань, що викликає занепокоєння для кого-небудь, що приходить зовсім свіжим. Вони все ще оновлюються, чи є безкоштовний ресурс?
Уолт Стоунбернер

1
Напевно вони все ще оновлюються. На сьогоднішній день, мабуть, найкращий спосіб почати швидко - це перевірка скрипту peepcode за адресою: peepcode.com/products/emberjs
Майк Грассотті

2
@MikeGrassotti Чи є спосіб змінити свою відповідь, щоб показати вихідний код для початку роботи з EmberJS? Може, покрокові вказівки щодо створення програми "Hello World" за допомогою EmberJS?
Джордж Стокер

2
@MikeGrassotti Вікі тегів ember.js слід оновити, щоб включити це питання та відповідь
MilkyWayJoe


4

Я б дуже рекомендував використовувати Yeoman та супровідний генератор вугрів. З коробки ви отримуєте всі інструменти, необхідні для розробки, тестування та підготовки програми для виробництва. Як додатковий бонус, ви зможете розділити шаблони перегляду на декілька файлів і почати з інтелектуальної структури каталогів, яка полегшить вам створення бездоганної бази коду.

Я написав підручник щодо того, як його встати та працювати приблизно за 5 хвилин. Просто встановіть node.js і дотримуйтесь тут



1

Також пройдіть цей безкоштовний підручник під назвою " Дізнаємось Ембер від Tuts + Premium". Це безкоштовно, тому що їх від їх free coursesсерії. Цей курс, як називають хлопці Тутс, розділений на чотирнадцять простих для слідування розділів.

Я сподіваюся, що це допомагає.

З повагою,


0

Я віддаю перевагу вугільному підходу єоманів. Це дає тони речі з коробки, включаючи:

  • приємна архітектура папок з використанням підходу «модуль».
  • ніяк
  • перезавантаження в реальному часі
  • мініфікувати
  • уніфікувати
  • jshint

і більше.

і його надзвичайно просто налаштувати, просто запустіть, yo charcoalщоб створити додаток, а потім yo charcoal:module myModuleдодати новий модуль.

більше інформації тут: https://github.com/thomasboyt/charcoal


0

Я щойно створив комплект для початківців, якщо ви хочете використовувати найновіший EmberJS з Ember-Data, з механізмом шаблонів Emblem. Усі загорнуті в Middleman, тому ви можете розвиватися за допомогою CoffeeScript. Все на моєму GitHub: http://goo.gl/a7kz6y



0

Я почав створювати серію відеороликів, які починаються від Ембер і будують до використання Ембер у гніві у серйозних випадках використання для реальних речей.

Якщо вам цікаво побачити, як це потрапило у світлі дня (я більш ніж радий, що зрештою викладе його публічно, якщо є інтерес), ви обов'язково перейдете до посади, яку я зробив, і натисніть "як" (або просто прокоментуйте тут, Я вважаю):

http://discuss.emberjs.com/t/making-ember-easier-to-approach-aka-crazy-screencasts-videos-that-will-stick-in-your-mind-for-learning-ember/5284

Я дуже прагну зробити так, щоб допомогти спільноті процвітати, а також допомогти людям навчитися легко створювати стандартні веб-сайти.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.