次のボタンをクリックすると質問が次々と表示される「アンケート」というコンテナテンプレートがあります。次のボタンをクリックすると、バックグラウンドで次の質問へのルートを提供するロジックがいくつかあります。そして、アンケート内の質問テンプレートを変更します。
<template name="questionnaire">
<h1>Snapwiz questionnaire</h1>
<h3>Question</h3>
{{> yield region="singleQuestion"}}
<button class="next">Next</button>
</template>
Template.questionnaire.events({
'click .next':function(event,template){
Meteor.call('nextQuestion',Router.current().params._id,function(err,res){
if(res){
Router.go('/question/'+res);
}
});
}
});
Router.route('questionnaire',{
yieldTemplates:{
'question1':{to:'singleQuestion'}
}
});
Router.route('question',{
path:'question/:_id',
action:function(){
this.render('question'+this.params._id,{to:'singleQuestion'});
}
});
次のボタンをクリックするだけで表示される「質問1」「質問2」などの簡単な質問テンプレートがたくさんあります。
最初にリンク「http://localhost:4000/questionnaire」にアクセスしたとき。デフォルトでは「question1」テンプレートが表示されます。ユーザーが「次へ」ボタンをクリックすると、サーバーから質問 ID が取得され、その質問テンプレートが表示されます。したがって、次のボタンをクリックすると、「http://localhost:4000/question/2」に移動し、 question2 テンプレートが表示されます。
これまでのところ、すべてがスムーズに機能しています。
しかし、「 http://localhost:4000/question/2」をブラウザに直接入力してリロードすると問題が発生します。コンテナがロードされていないため、ページは空白になります。
では、これに対する最終的な修正は何でしょうか? ルーターで「ホット プッシュ コード」を検出した場合、コンテナー テンプレートもレンダリングできると思いますが、これはどのように行うべきでしょうか? そして、どちらが最善のアプローチであるかはわかりません。
任意の考えや助けをいただければ幸いです。