そのため、Iron Router と FlowRouter の議論についてはたくさん読みました。
Iron Router を使用してプロジェクトを開始しましたが、考えが変わり、現在 FlowRouter に移行しています。
アプリのコメント セクションの移行を開始するまで、すべてが順調に進んでいました。ご覧のとおり、このセクションはアプリで数回再利用され、ニュース、投稿、写真、ビデオなどのコメント セクションとして機能します。
IR のデータ コンテキストを使用した例:
Router.route('/news/:slug', {
name: 'newsItem',
waitOn: function() { Meteor.subscribe('news.single', this.params.slug) },
data: function() {
return News.findOne({slug: this.params.slug});
}
});
<template name="newsItem">
<p>{{title}}</p>
<p>{{body}}</p>
{{> commentSection}}
</template>
コメント コレクション スキーマには「タイプ」があります (このコメントが属する「もの」、ニュース、写真などのタイプを知るため)。そのタイプは、commentSection テンプレートの「form .submit」イベントで設定されました。例:
'submit form': function(e, template) {
e.preventDefault();
var $body = $(e.target).find('[name=body]');
console.log(template.data.type);
var comment = {
type: template.data.type,
parentId: template.data._id,
parentSlug: template.data.slug,
body: $body.val()
};
Meteor.call('insertComment', comment, function(error, commentId) {
if (error){
alert(error.reason);
} else {
$body.val('');
}
});
}
これは、テンプレート データ コンテキストにニュース アイテムが含まれていたため、タイプ プロパティも同様に機能したためです。
公式ガイドで推奨されているように、テンプレートにデータを設定せずにFlow Routerのみを使用して、これと同様のことをどのように達成できますか?