我即将制作带有瓷砖的仪表板。
在Meteor中,我有一个集合Tiles
。我的问题是每个磁贴应该有不同的内容。
我使用
将切片附加到我的模板Template.grid.helpers({
tiles: function() {
return GridTiles.find();
}
});
并使用
打印我的模板中的图块{{#each tiles}}
{{> gridItem}}
{{/each}}
因此,我可以在我的收藏集content
中轻松制作字段Tiles
,并在每个gridItem
中打印此内容;但是,我的内容应该相当复杂。
一个磁贴有一些(自动)表单输入,另一个磁贴有一个包含数据的表(来自另一个集合),等等。
我确信我应该为每种不同类型的内容都有一个模板,例如
<template name="gridType1">
<form ...
</form>
</template>
<template name="gridType2">
<table ...
</table>
</template>
但是如何选择哪个模板应该在哪个磁贴中?我可以在我的Tiles
集合中保存模板名称。但这是最聪明的吗?如何从集合中获得的名称中包含模板?
我想我会用这样的东西做到这一点
<template name="gridItem">
<div class="grid-item">
<div class="grid-item-content">
<a href="#" class="remove-tile">x</a>
{{#if templateName}}
{{> Template.dynamic template=templateName }}
{{else}}
<p>Change tile type</p>
<ul>
<li><a href="#">table</a></li>
<li><a href="#">form inputs</a></li>
</ul>
{{/if}}
</div>
</div>
</template>
有意义吗?
答案 0 :(得分:0)
Meteor支持动态模板。
所以
{{> Template.dynamic template=aHelperMethodThatWorksOutTheTemplateName [data=dataContextThatTheTemplateWillNeed] }}