是否可以将变量传递给模板助手函数以确定返回哪个对象,而无需为每个对象创建新模板?可能是这样的事情吗?
{{#each frame}}
<p>{{name}}</p>
<p>{{description}}</p>
{{/each}}
Template.templateName.helpers({
classic : [
{
name : 'first option',
description : 'this is option 1'
},
{
name : 'second option',
description : 'this is option 2'
}],
versions : [
{
name : 'first option',
description : 'this is option 1'
},
{
name : 'second option',
description : 'this is option 2'
}],
{
'frame' : function(boardSpecs){
if (boardSpecs[0] == "classic"){
return classic;
}
else if (boardSpecs[0] == "versions"){
return versions;
}
}
})
答案 0 :(得分:1)
您可以使用{{#if}}。
例如,只有经典和版本:
模板:
{{#each frame}}
{{#if classic.active}}
<p>{{classic.name}}</p>
<p>{{classic.description}}</p>
{{/if}}
{{#if versions.active}}
<p>{{versions.name}}</p>
<p>{{versions.description}}</p>
{{/if}}
{{/each}}
助手:
Template.templateName.helpers({
active: {
classic: function(){ return Session.get("active") == "classic"; }
versions: function(){ return Session.get("active") == "versions"; }
},
classic : [
{
name : 'first option',
description : 'this is option 1'
},
{
name : 'second option',
description : 'this is option 2'
}],
versions : [
{
name : 'first option',
description : 'this is option 1'
},
{
name : 'second option',
description : 'this is option 2'
}]
})
然后,当您需要更改视图时,可以设置Session.set(“active”,“您想要的名称”)。