如何在Meteor中包装小部件模板?

时间:2015-12-01 17:50:52

标签: meteor meteor-blaze

假设我有一个小部件,它将显示一个图形,另一个小部件将在典型的仪表板中显示一个表格。由于小部件的外部控件的一致性,我想将引导面板放在一个模板中,该模板一致地显示所有小部件,类似于下面的模板:

<template name="widgetBox">
  <div class="col-xs-12 col-sm-6 col-md-4">
    <div class="panel panel-default">
      <div class="panel-heading">
        {{this.title}}
        <span class="pull-right clickable" data-effect="fadeOut"><i class="fa fa-chevron-down"></i></span>
      </div>
      <div class="panel-body">
        <!-- I want the widget to go here -->
      </div>
    </div>
  </div>
</template>

我不知道如何通过迭代集合来实现这一点,因为我想用自己的模板控制每个widget主体的外观。例如,两个表视图窗口小部件可能共享包含排序或过滤的模板,而两个图形窗口小部件将具有完全不同的要求和布局。

是否可以使用样板html,如&#34; widgetBox&#34;上面的模板,同时在面板体内放置另一个模板?

1 个答案:

答案 0 :(得分:2)

当您希望一个外部模板重用多个内部模板时,您可以使用路由器{{> yield}}模式使用dynamic templates < / p>

前者通常用于母版页布局,尽管您可以在布局中使用多个页面。

后者可能更适合小部件。

{{> Template.dynamic template=myTemplateName [data=data] }}

其中myTemplateName是辅助函数的名称,它返回与您创建的模板名称对应的字符串。