#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}}