meteor blaze layout如何在渲染时使用参数传递嵌套模板

时间:2016-09-21 18:12:21

标签: meteor meteor-blaze

我有一个模板:

<template name="outerTemplateName">
...
    {{> Template.dynamic template=inner}}
...
</template>

但是,我想要呈现为内部模板的模板中还包含一个动态模板:

<template name="innerTemplateName">
...
    {{> Template.dynamic template=anotherInner}}
...
</template>

是否可以使用BlazeLayout.render()来实现类似下面的模板?

<template name="outerTemplateName">
...
    {{> innerTemplateName anotherInner="anotherInnerTemplateName"}}
...
</template>

1 个答案:

答案 0 :(得分:0)

我不知道如何将模板传递给其他模板,但您可以通过传递这样的字符串来动态切换模板。

<template name="outerTemplate">
    {{> innerTemplate childTemplateName="templateA"}}
</template>

<template name="innerTemplate">
  {{#if showTemplate 'templateA' }}
    {{> templateA }}
  {{/if}}
  {{#if showTemplate 'templateB' }}
    {{> templateB }}
  {{/if}}
</template>

<template name="templateA">
    <h1>I am templateA</h1>
</template>

<template name="templateB">
  <h1>I am templateB</h1>
</template>

模板助手

Template.innerTemplate.helpers({
    showTemplate : function (templateName) {
        return templateName === this.childTemplateName;
    }
});