投稿のリストを調べて、コンテンツの種類 (画像、テキスト、Twitter 投稿) に応じて適切な html ハンドルバー テンプレートを選択します。ただし、テンプレートの種類が増えると、これはかなり醜くなります。
<template name="postItem">
{{#if isType "image"}}
{{#if isSinglePost}}
{{>postImageSingle}}
{{else}}
{{>postImage}}
{{/if}}
{{/if}}
{{#if isType "rich"}}
{{#if isSinglePost}}
{{>postRichSingle}}
{{else}}
{{>postRich}}
{{/if}}
{{/if}}
{{#if isType "video"}}
{{#if isSinglePost}}
{{>postRichSingle}}
{{else}}
{{>postRich}}
{{/if}}
{{/if}}
{{#if isType "file"}}
{{#if isMimeType "audio/wav"}}
{{>postAudio}}
{{else}}
{{>postFile}}
{{/if}}
{{/if}}
{{#if isType "link"}}
{{#if isProviderName this "Twitter"}}
{{>postTwitter}}
{{else}}
{{#if isSinglePost }}
{{>postLinkSingle}}
{{else}}
{{>postLink}}
{{/if}}
{{/if}}
{{/if}}
{{#if isType "preview"}}
{{>postPreview}}
{{/if}}
{{#if isType "photo"}}
{{>postImage}}
{{/if}}
</template>
ロジックをヘルパー関数に移動する方がよいでしょうが、私が苦労しているのは、使用するテンプレートの名前をヘルパー関数から返す方法です。
{{>getTemplateName}}
Template.postItem.getTemplateName = function () {
return postImage;
};
しかし、これはもちろん私に与えます:
Exception from Deps recompute: Error: No such template 'getTemplateName'