MeteorJs 模板条件显示不同的模板
MeteorJs Template conditions to display different template
我有一个 meteorjs 默认布局文件,我正在使用 iron-route 路由到不同的页面,我想做的是不在主页上显示导航。我可以通过使用两个单独的文件来做到这一点,但我想用单个文件来做到这一点。
<template name="layout">
<head>
<title>
{{title}}
</title>
</head>
<body>
{{> navigation }}
<div class="nav_padding">
{{> yield}}
</div>
{{> footer}}
</body>
</template>
我的路线
Router.route('/', function(){
this.layout('homeLayout');
this.render('home', {
data:{title: 'some'}
});
});
有几种方法可以做到这一点,但这里有一个简单的解决方案...
向您的布局模板添加一个助手,指示是否应根据路线名称显示导航:
Template.myLayout.helpers({
showNav: function() {
return Router.current().route.getName() !== 'home';
}
});
修改您的模板以有条件地显示 navigation
模板:
<template name="myLayout">
{{#if showNav}}
{{> navigation }}
{{/if}}
<div class="nav_padding">
{{> yield}}
</div>
{{> footer}}
</template>
为了使您的路线成为 named,您可能需要将您的路线修改为如下内容:
Router.route('/', {
name: 'home',
template: 'home',
layoutTemplate: 'myLayout',
data: {title: 'some'}
});
我有一个 meteorjs 默认布局文件,我正在使用 iron-route 路由到不同的页面,我想做的是不在主页上显示导航。我可以通过使用两个单独的文件来做到这一点,但我想用单个文件来做到这一点。
<template name="layout">
<head>
<title>
{{title}}
</title>
</head>
<body>
{{> navigation }}
<div class="nav_padding">
{{> yield}}
</div>
{{> footer}}
</body>
</template>
我的路线
Router.route('/', function(){
this.layout('homeLayout');
this.render('home', {
data:{title: 'some'}
});
});
有几种方法可以做到这一点,但这里有一个简单的解决方案...
向您的布局模板添加一个助手,指示是否应根据路线名称显示导航:
Template.myLayout.helpers({
showNav: function() {
return Router.current().route.getName() !== 'home';
}
});
修改您的模板以有条件地显示 navigation
模板:
<template name="myLayout">
{{#if showNav}}
{{> navigation }}
{{/if}}
<div class="nav_padding">
{{> yield}}
</div>
{{> footer}}
</template>
为了使您的路线成为 named,您可能需要将您的路线修改为如下内容:
Router.route('/', {
name: 'home',
template: 'home',
layoutTemplate: 'myLayout',
data: {title: 'some'}
});