Я сделал аналогичную вещь, используя опцию layout template
утюга-маршрутизатора. Предположим, что я хочу создать домашний вид с несколькими видами/шаблонами внутри этого домашнего вида, который изменится. Во-первых, я бы объявить мой маршрут:
Router.map(function() {
this.route('home', {
path: '/',
template: 'myHomeTemplate',
layoutTemplate: 'layout',
yieldTemplates: {
'myAsideTemplate': {to: 'aside'},
'myFooter': {to: 'footer'}
}
});
});
Где HTML для шаблона макета будет выглядеть следующим образом:
<template name="layout">
<aside>
{{> yield region='aside'}}
</aside>
<div>
{{> yield}}
</div>
<footer>
{{> yield region='footer'}}
</footer>
</template>
Так что шаблоны, указанные в выходах aside
и footer
получить оказанной в указанном месте. Для вашего случая вы можете указать выход sidemenu
.
Нет, что у вас есть основной макет и идея, вы можете определить другой маршрут. Скажем, мы называем это differentHome
.
Router.map(function() {
this.route('differentHome', {
path: '/differentHome',
template: 'myHomeTemplate',
layoutTemplate: 'layout',
yieldTemplates: {
'myDifferentAsideTemplate': {to: 'aside'},
'myDifferentFooter': {to: 'footer'}
}
});
});
Уведомление по этому маршруту декларации я меняюсь шаблоны урожая, но я не изменяя основной шаблон, который будет показан в основной выход. Теперь о событии вы можете изменить маршрут, который изменит два различных Урожайность шаблоны:
Router.go("differentHome");
Или вы можете использовать HTML для маршрутизации, скажем, со ссылкой.
EDIT (Хапхазард Solution):
Использование Session Variable продиктовать выбор Side Menu.
HTML:
<template name="main">
......
<div class="sideMenu">
{{#if sideMenu1}}
{{> side1Template}}
{{/if}}
{{#if sideMenu2}}
{{> side2Template}}
{{/if}}
</div>
</template>
JS:
Template.main.helpers({
sideMenu1 : function() {
return Session.equals("sideMenuChoice", "sideMenu1")
},
sideMenu2 : function() {
return Session.equals("sideMenuChoice", "sideMenu2")
}
});
Теперь на мероприятии установлено сеанс, на котором когда-либо была сторонаMenuChoice.
Ссылка на принятый ответ: https://github.com/iron-meteor/iron-router/blob/devel/Guide.md#layouts – kontur