如何使用数组动态渲染Meteor中的多个模板?

时间:2015-12-13 01:31:40

标签: javascript meteor meteor-blaze spacebars meteor-helper

我在使用帮助程序中的数据渲染模板时遇到问题。

Template.bonus.helpers({
    Userform: function(){
      return UserForms.find({owner:Meteor.userId()});
    },
    warehouse: function(){
      return Warehouse.find({});
    },
    DisplayForm: [
      { formname: "SW - Picking" },
      { formname: "SW - Packing" },
      { formname: "SW - Putaway" }
    ]
  });

基本上我只想实现这样的目标:

<div id="placeholder" class="col-md-8">
    {{#each DisplayForm}}
        {{> {{formname}} }}       //Render 3 templates "SW - Picking","SW - ....
    {{/each}}
</div>

我确信这很简单,但我只需要正确的语法,这样我就可以使用helper中的数据作为要呈现的模板的名称。

1 个答案:

答案 0 :(得分:1)

您可以使用 {{> Template.dynamic template=template [data=data] }} 在Meteor中动态添加模板。

例如:

<body>
  {{> bonus}}
</body>

<template name="bonus">
  {{#each displayForm}}
    {{> Template.dynamic template=formname }}
    <br />
  {{/each}}
</template>

<template name="picking">
  Picking Template
</template>

<template name="packing">
  Packing Template
</template>

<template name="putaway">
  Putaway Template
</template>
if (Meteor.isClient) {
  Template.bonus.helpers({
    displayForm: [{
      formname: "picking"
    }, {
      formname: "packing"
    }, {
      formname: "putaway"
    }]
  });
}

这是MeteorPad