Ich habe eine ähnliche Sache mit Eisen-Router layout template
Option gemacht. Angenommen, ich möchte eine Home-Ansicht mit mehreren Ansichten/Vorlagen innerhalb dieser Home-Ansicht erstellen, die sich ändern. Zuerst möchte ich meine Route erklären:
<template name="layout">
<aside>
{{> yield region='aside'}}
</aside>
<div>
{{> yield}}
</div>
<footer>
{{> yield region='footer'}}
</footer>
</template>
Damit die angegebenen Vorlagen in den Ausbeuten aside
und footer
in der angegebenen Stelle gemacht erhalten:
Router.map(function() {
this.route('home', {
path: '/',
template: 'myHomeTemplate',
layoutTemplate: 'layout',
yieldTemplates: {
'myAsideTemplate': {to: 'aside'},
'myFooter': {to: 'footer'}
}
});
});
, wo die HTML für die Layout-Vorlage aussehen würde. Für Ihren Fall können Sie eine sidemenu
Ausbeute angeben.
Nein, dass Sie das grundlegende Layout und die Idee haben, dass Sie eine andere Route definieren können. Sagen wir, wir nennen es differentHome
.
Router.map(function() {
this.route('differentHome', {
path: '/differentHome',
template: 'myHomeTemplate',
layoutTemplate: 'layout',
yieldTemplates: {
'myDifferentAsideTemplate': {to: 'aside'},
'myDifferentFooter': {to: 'footer'}
}
});
});
Hinweis auf dieser Strecke Erklärung ich die Ausbeute Vorlagen bin zu ändern, aber ich bin nicht die grundlegende Vorlage zu ändern, die in dem Hauptertrag erbracht werden. Jetzt auf einer Veranstaltung können Sie den Weg wieder, die die beiden unterschiedlichen Erträge Vorlagen ändern:
Router.go("differentHome");
Oder können Sie html Route nutzen, etwa mit einem Link.
EDIT (Haphazard Solution):
Verwenden Session Variable Seitenmenü Wahl zu diktieren.
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")
}
});
Jetzt auf ein Ereignis setzen Sie die Sitzung auf was auch immer sideMenuChoice.
Die Referenz für die angenommene Antwort lautet https://github.com/iron-meteor/iron-router/blob/devel/Guide.md#layouts – kontur