Коли додаток запускається, роутер зіставляє поточний URL з маршрутами. які ви визначили. Маршрути, в свою чергу, відповідають за відображення шаблонів, завантаження даних і установку стану програми.
Щоб визначити маршрут, запустіть команду:
Вона створює файл маршруту в app / routes / route-name.js. шаблон для маршруту в app / templates / route-name.hbs і файл модульного тесту в tests / unit / routes / route-name-test.js. Також ця команда додає маршрут в роутер.
Основні маршрути
Щоб визначити відповідності URL, потрібно викликати метод map () в роутері додатки. При виклику map () слід передати функцію. Вона буде викликана зі значенням this. яке визначається об'єкту. Цей об'єкт можна використовувати для створення маршрутів.
Тепер, коли користувач відвідає / about. Ember відобразить шаблон about. При відвідуванні / favs Ember відобразить шаблон favorites.
Ви можете не вказувати шлях, якщо він має те ж ім'я, що і маршрут. В такому випадку попередній приклад буде виглядати так:
Усередині шаблонів можна використовувати # 123; # 123; link-to # 125; # 125 ;. щоб переміщатися між маршрутами. Для цього потрібно використовувати ім'я, яке ви використовували для методу route.
хелперів # 123; # 123; link-to # 125; # 125; також додасть клас active до заслання, яка вказує на поточний активний маршрут.
В іменах маршрутів, що складаються з декількох слів, слова умовно поділяють знаком тире, наприклад:
Певний вище маршрут, за замовчуванням, буде використовувати обробник маршруту blog-post.js. шаблон blog-post.hbs і носити ім'я blog-post в будь-якому хелперів # 123; # 123; link-to # 125; # 125; .
Маршрут з декількох слів, який не дотримуються цієї угоди, наприклад:
за замовчуванням, також буде використовувати обробник маршруту blog-post.js. шаблон blog-post.hbs. але носити ім'я blog_post в будь-якому хелперів # 123; # 123; link-to # 125; # 125; .
вкладені маршрути
У таких випадках ви можете використовувати вкладені маршрути, щоб відобразити один шаблон всередині іншого.
Визначити вкладені шаблони можна за допомогою передачі this.route зворотного виклику:
Щоб згенерувати вкладений маршрут вище, запустіть команду:
Потім додайте хелпер # 123; # 123; outlet # 125; # 125; в шаблон, щоб вказати, де ви хочете відобразити вкладений шаблон:
маршрут додатки
Перехід на маршрут application відбувається, коли додаток завантажується в перший раз. Як і будь-який інший маршрут, за замовчуванням він буде завантажувати шаблон з тим же ім'ям (в даному випадку application). Саме тут слід розміщувати заголовок, нижню частину сторінки і будь-які інші декоративні елементи. Всі інші маршрути будуть відображати свої шаблони в # 123; # 123; outlet # 125; # 125; шаблону application.hbs.
Цей маршрут - частина будь-якої програми. Тому вам не потрібно вказувати його в app / router.js.
Маршрути INDEX
На кожному рівні вкладення (включаючи верхній) Ember.js автоматично надає маршрут під ім'ям index для шляху /. Щоб простежити, коли з'являється новий рівень вкладеності, подивіться роутер: всякий раз, коли ви бачите function. можете відзначати новий рівень.
Наприклад, якщо ви пишете простий роутер таким чином:
Його еквівалентом буде:
Шаблон index відобразиться в # 123; # 123; outlet # 125; # 125; шаблону application. Якщо користувач переходить в / favorites. Ember.js замінить шаблон index на шаблон favorites.
Вкладений роутер на зразок цього:
динамічні сегменти
Одне з призначень маршруту - завантаження моделі.
Вводите динамічні сегменти.
Динамічний сегмент - це частина URL, яка починається с. за яким йде ідентифікатор.
Якщо користувач переходить в / post / 5. маршрут матиме ідентифікатор post_id з цифрою 5. який він використовує, щоб завантажити потрібну публікацію. У Ember дотримується угода про найменування в стилі: model-name_id з двох причин. По-перше, якщо ви дотримуєтеся угоду, маршрути за замовчуванням знають, як повернути необхідну модель. По-друге, параметр - об'єкт, і він може мати одне значення, пов'язане з ключем. Якщо написати код таким чином, він буде працювати неправильно:
Але якщо написати так, то код буде працювати належним чином:
У наступному розділі, "Технічна специфікація моделі маршруту". ви докладніше дізнаєтесь про те, як завантажувати модель.
Узагальнені / підстановочні маршрути
Ви можете визначити підстановочні маршрути, які будуть відповідати кільком сегментам URL. Це можна використовувати, якщо вам, наприклад, потрібен "маршрут-пастка". Він стане в нагоді, якщо користувач введе неправильний URL, який програма не вміє обробляти.