私はMeteorを初めて使用しますが、自分に思われることをどのように解決するかが一般的な問題です。
レストランを一覧表示するハンドルバーテンプレートがあるとします。
<template name="Restaurants">
{{#each Restaurant}}
{{name}}
{{/each}}
</template>
ここで、ユーザーがレストランテンプレートをクリックすると、そのレストランのメニューを表示したいと思います。
特定のレストランのすべてのメニュー項目を含む「menuItems」という名前のサブテンプレートを追加しました。
<template name="Restaurants">
{{#each Restaurant}}
{{name}}
{{> menuItems}}
{{/each}}
</template>
ユーザーがレストランテンプレートの任意の場所をクリックしたときに、menuItemsサブテンプレートのインスタンスを1つだけレンダリングしたい(選択したレストランのメニューアイテムのみをレンダリングする)。
次のようになります。
Template.Restaurants.events({
'click' : function (e) {
// This is where I need help - what's the right way to display only one subtemplate instance?
}
});
私の質問は、正しいmenuItemsテンプレートインスタンスのみを選択して表示するにはどうすればよいですか?
また、menuItemsテンプレートインスタンスをDOMに配置したいのは、クリック後のみで、前ではありません(すべてのレストランのすべてのメニュー項目を保持し、それらのdivのみを非表示にすることは、db内の項目の数が多いため、オプションではありません)。
他の方法で解決策に取り組む必要があると思われる場合は、お知らせください。ありがとうございます。