在流星网格瓷砖的高级内容

Advanced content in grid tiles in Meteor

本文关键字:高级内 流星 网格      更新时间:2023-09-26

我要用磁贴制作一个仪表板。

在流星,我有一个集合Tiles。我的问题是每个贴图应该有不同的内容。

我用

将tile附加到模板中
Template.grid.helpers({
  tiles: function() {
    return GridTiles.find();
  }
});

,然后用

打印模板中的tile
{{#each tiles}}
  {{> gridItem}}
{{/each}}

所以我可以很容易地在我的集合Tiles中创建一个字段content,并在每个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>

有意义吗?

Meteor支持动态模板。

{{> Template.dynamic template=aHelperMethodThatWorksOutTheTemplateName [data=dataContextThatTheTemplateWillNeed] }}