Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Meteor 流星显示和隐藏模板_Meteor - Fatal编程技术网

Meteor 流星显示和隐藏模板

Meteor 流星显示和隐藏模板,meteor,Meteor,我试图找到流星的方式来显示和隐藏模板。例如,如果单击“主页”按钮,则会显示主页模板,并隐藏所有其他模板。我知道这可以通过会话变量或依赖项实现,但两者都无法工作。可以通过使用会话变量来实现,但您可能希望使用 以下是使用会话变量的解决方案: {{#如果是主页} {{>主页} {{/if} {{#如果是“关于”} {{>关于} {{/if} 家 关于 回家 大约 if(Meteor.isClient){ setDefault('page','home'); UI.body.helpers({

我试图找到流星的方式来显示和隐藏模板。例如,如果单击“主页”按钮,则会显示主页模板,并隐藏所有其他模板。我知道这可以通过会话变量或依赖项实现,但两者都无法工作。

可以通过使用
会话
变量来实现,但您可能希望使用

以下是使用
会话
变量的解决方案:


{{#如果是主页}
{{>主页}
{{/if}
{{#如果是“关于”}
{{>关于}
{{/if}
  • 关于
回家

大约

if(Meteor.isClient){
setDefault('page','home');
UI.body.helpers({
iPage:功能(第页){
返回会话.equals('page',page)
}
})
UI.body.events({
“click.clickChangesPage”:函数(事件、模板){
Session.set('page',event.currentTarget.getAttribute('data-page'))
}
})
}
2016年火星更新2

正如在评论中指出的,使用
Template.dynamic
是一个更好的解决方案。下面是使用该代码的代码:


{{>Template.dynamic Template=currentPage}
  • 关于
回家

大约

if(Meteor.isClient){
setDefault('page','home');
Template.body.helpers({
currentPage:函数(第页){
return Session.get('page'))
}
})
Template.body.events({
“click.clickChangesPage”:函数(事件、模板){
Session.set('page',event.currentTarget.getAttribute('data-page'))
}
})
}

谢谢,我不知道通过iron router是否可行,所以我会看看。你能举出一些使用会话变量的例子吗?@james,看看我更新的答案。太棒了!感谢您的快速响应,我希望这能帮助其他人与流星出发。Stackoverflow再次拯救世界:-)这个答案在2016年仍然适用吗?还是我最好去?埃德加,是的,今天这将是一个更好的解决方案。我已经相应地更新了我的帖子。还要注意,
UI
对象已合并到
模板
对象中。