Вложенный маршрут в emberjs без использования выхода ресурса
У меня есть маршрутизатор с соответствующими шаблонами для каждого маршрута (и объектов маршрута). Я хочу иметь возможность отображать каждый шаблон независимо от его родителя, то есть я не хочу, чтобы вложенные маршруты отображались на выходе родительского шаблона. По сути, создание отдельной "страницы" для каждого вложенного маршрута.
App.Router.map(function() {
this.resource('recipes', function() {
this.route('new');
this.route('show', { path: '/:recipe_id' });
});
});
Я использую ember1. 0. 0-rc1
Спасибо
3 ответа:
Я хочу иметь возможность отображать каждый шаблон независимо от его родителя, то есть я не хочу, чтобы вложенные маршруты отображались на выходе родительского шаблона.
Возможно, констатация очевидного, но это именно то, что произойдет, если вы не создадите шаблон для ресурса. В вашем случае, если вы не создадите шаблон
recipes.hbs
, то ember отобразит шаблоныnew.hbs
иshow.hbs
в{{outlet}}
вapplication.hbs
.Примечание: Если вы сделаете это, Ember выведет консоль предупреждение " непосредственный Родительский маршрут не оказывался в основной розетке ..."
Это объясняется более подробно в руководстве ember routing guide
Краткое примечание из руководства ember
Если вы определяете ресурс, используя это.ресурс и не поставляют функцию, то неявный ресурс.маршрут индекса не создается. В этом случае /resource будет использовать только шаблон ResourceRoute, ResourceController и resource.
Ваш маршрут в порядке и @mikegrassotti правильно, хотя Если вы хотите, чтобы индекс для "рецептов" без вложенных шаблонов маршрутов" new "и" show " внутри "рецепты" (без мастера / детали) вам нужно будет создать шаблон рецепты/индекс без выхода внутри.
<script type="text/x-handlebars" data-template-name="recipes/index"> <ul> {{#each}} <li>{{recipe}}</li> {{/each}} </ul>
Вам не нужно менять настройки маршрута. Как Майк упоминал выше, Эмбер будет представлять новое.ОБД и показать.шаблоны hbs в {{outlet}} в приложении.hbs