複数のページにわたってデータを保存しようとしている場合は、ウィザードに関連するすべてのデータを格納するコレクションを作成します。したがって、ユーザーがウィザードを進めていくと、そのコレクション ドキュメントのさまざまな部分にデータが入力されます。または、他の人が述べたように、データをセッションに保存できます。ユーザーがページを更新すると、そのデータは失われますが、ルートを変更してもアクセスできる可能性があります。
iron-router の dev ブランチでは、名前付き yield の動作が少し異なることに注意してください。リリース バージョンでは、レイアウトの名前付き歩留まりはすべての新しいルートで置き換えられます。つまり、レンダリングされたテンプレートが同じであっても、ページから完全に引き裂かれ、再度レンダリングされます。dev ブランチでは、テンプレートが実際に変更された場合にのみ、名前付きの yield リージョンが再レンダリングされます。
したがって、あなたの場合(開発ブランチで)、次のようなことを行うことができます(概念を説明するためだけに):
Router.map(function () {
this.route('stepOne', {
template: 'wizard',
path: '/stepOne',
action: function () {
Session.set('wizardStep', 'stepOne');
this.render('wizard'); // same as this.render()
}
});
this.route('stepTwo', {
template: 'wizard',
path: '/stepTwo',
action: function () {
Session.set('wizardStep', 'stepTwo');
this.render();
}
});
});
<template name="wizard">
{{#ifStepEquals "stepOne"}}
<!-- do something with step one -->
{{/ifStepEquals}}
{{#ifStepEquals "stepTwo"}}
<!-- do something here with step two -->
{{/ifStepEquals}}
</template>