2014-10-02 75 views
3

我的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 
} 

谢谢。

回答

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}}”上下文。

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"; 
    } 
}); 
+0

谢谢!我看到你的帖子有点晚了。我推导的实现非常相似。 – Nate 2014-10-02 21:12:16