Выход EmberJS внутри нескольких вложенных маршрутов

#ember.js #ember-cli

#ember.js #ember-cli

Вопрос:

Я не совсем разбираюсь в выходах и шаблонах рендеринга в EmberJS. До сих пор я выполнял в основном операции CRUD или мои маршруты не были вложены столько раз, сколько здесь, поэтому я еще не сталкивался с этой проблемой. Использования {{outlet}} в родительском маршруте было достаточно.

Проблема связана с моим подходом, к которому я привык. Все работает нормально, когда я посещаю routes admin/* , но когда я пытаюсь войти, например, admin/organization/{id}/user он отображает admin/organization шаблон, которого я хотел бы избежать. Я полагаю, что это можно сделать с помощью renderTemplate( ) функции внутри route.js , но я не могу разобраться в этих вещах.

Я воссоздал структуру своих маршрутов в [twiddle]

Не мог бы кто-нибудь объяснить мне это, пожалуйста?

Ответ №1:

Вложенные маршруты всегда имеют вложенные шаблоны. Для решения проблемы вы можете использовать index маршрут, который по умолчанию существует на каждом уровне. Структура ваших шаблонов будет такой:

 -app
--templates
---admin
----organization
-----index.hbs //template for admin/organization/index route, url: /admin/organization
-----user.hbs //template for admin/organization/user route, url: /admin/organization/user
----index.hbs //template for admin/index route, url: /admin
  

Обратите внимание, что если какой-либо файл шаблона не существует (в моем примере app/templates/admin.hbs , app/templates/admin/organization.hbs не существует), это то же самое, что иметь .hbs файл, в котором есть только {{outlet}}