2 つの異なるルートとテンプレート間でデータを渡すにはどうすればよいですか?
フロント エンド (クライアント フォルダー) に、投稿 ID をパラメーターの 1 つとして渡すだけの Router.go() を呼び出す JavaScript ファイルがあります。
以下は、3つの主な犯人です(私は信じています)。読みやすくするために、ほとんどのコードを削除しました。問題なくPostDetailページに変更できます。Router からPostDetailページのPostIdを取得することもできます。私の問題は、取得されたデータベース エントリ ( POLL ) がテンプレートにレンダリングされないことです。したがって、データベース エントリが返されている場合でも、{{Question}}は常に空白になります。
さらに情報を投稿する必要がある場合はお知らせください。
フロントエンド.js
Template.PostTiles.events({
// When a choice is selected
'click .pin' : function(event, template) {
Router.go('Post', {_PostId: this.PostId});
}
});
post-detail.html
<template name="PostDetail">
<h3>{{Question}}</p>
</template>
Shared.js
Router.map( function() {
this.route('Home', {
path: '/',
template: 'PostTiles',
data: {
// Here we can return DB data instead of attaching
// a helper method to the Template object
QuestionsList: function() {
return POLL.find().fetch();
}
}
});
this.route('Post', {
template: 'PostDetail',
path: '/Post/:_PostId',
data: function() {
return POLL.findOne(this.params._PostId);
},
renderTemplates: {
'disqus': {to: 'comments'}
}
});
});
- - - アップデート - - -
{{#each SomeList}}構文を使用してデータベース エントリのリストを表示するのではなく、単純に 1 つのデータベース エントリのみを表示できるように問題を絞り込んだと思います。