Визначення маршрутів - emberjs російською

Коли додаток запускається, роутер зіставляє поточний 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, який програма не вміє обробляти.

обробники маршруту

Схожі статті