我的HTML:
<template name="foo">
{{#each category}}
{{#if this.custom}}
{{> someTemplateName}}
{{else}}
{{> generic}}
{{/if}}
{{/each}}
</template
如何将某些值返回到“someTemplateName”,以便我可以根据#each语句中的对象切换模板。
Template.foo.someTemplateName = function () {
return A_TEMPLATE_NAME
}
感谢。
答案 0 :(得分:2)
正确的语法如下:
JS
Template.foo.helpers({
someTemplate:function () {
return Template.someTemplate;
}
});
HTML
<template name="someTemplate">
<p>SOME TEMPLATE</p>
</template>
这不是您操作的名称,而是模板对象,它们位于变量名Template.myTemplate
下。
如果您想操作模板名称,请尝试UI.dynamic
:
HTML
<template name="foo">
{{> UI.dynamic template=someTemplateName}}
</template>
JS
Template.foo.helpers({
someTemplateName:function () {
return "someTemplate";
}
});
答案 1 :(得分:2)
解决方案实际上非常简单。
<template name="foo">
{{#each category}}
{{#if this.custom}}
{{> someTemplateName}}
{{else}}
{{> generic}}
{{/if}}
{{/each}}
</template>
我还给了一个帮手:
Template.foo.someTemplateName = function () {
return Template[this.name];
}
this.name来自`{{#each}}&#39;上下文。