Meteor 1.0:所有页面上的 iron-router 布局,只有一个
Meteor 1.0: iron-router layout on all pages but one
我有一个涉及十几条路线的项目,所有这些都需要导航栏和我想包含在我的 layout
模板中的各种其他部分。
我的问题是我只有一个页面不需要导航栏。我可以通过将导航栏从 layout
模板中取出并在需要它的每个页面中手动放置导航栏来解决这个问题,但这似乎不是一个优雅的解决方案。
有没有办法将特定路线排除在 layout
模板的一部分之外?
为什么不为这条特定路线分配另一个不包含 navbar
的布局呢?
HTML
<template name="mainLayout">
{{> navbar}}
{{> yield}}
{{> footer}}
</template>
<template name="withoutNavbarLayout">
{{> yield}}
{{> footer}}
</template>
JS
Router.configure({
layoutTemplate:"mainLayout"
});
Router.route("/withoutNavbar",{
layoutTemplate:"withoutNavbarLayout"
});
这是该问题的另一个简单解决方案。
只需将要排除布局的指定页面的layoutTemplate 设置为null 即可。例如,这里我们将删除登录页面的布局和导航:
Router.route('login', {
layoutTemplate: '' //set the layoutTemplate to null for the login route
});
希望对您有所帮助。
我有一个涉及十几条路线的项目,所有这些都需要导航栏和我想包含在我的 layout
模板中的各种其他部分。
我的问题是我只有一个页面不需要导航栏。我可以通过将导航栏从 layout
模板中取出并在需要它的每个页面中手动放置导航栏来解决这个问题,但这似乎不是一个优雅的解决方案。
有没有办法将特定路线排除在 layout
模板的一部分之外?
为什么不为这条特定路线分配另一个不包含 navbar
的布局呢?
HTML
<template name="mainLayout">
{{> navbar}}
{{> yield}}
{{> footer}}
</template>
<template name="withoutNavbarLayout">
{{> yield}}
{{> footer}}
</template>
JS
Router.configure({
layoutTemplate:"mainLayout"
});
Router.route("/withoutNavbar",{
layoutTemplate:"withoutNavbarLayout"
});
这是该问题的另一个简单解决方案。
只需将要排除布局的指定页面的layoutTemplate 设置为null 即可。例如,这里我们将删除登录页面的布局和导航:
Router.route('login', {
layoutTemplate: '' //set the layoutTemplate to null for the login route
});
希望对您有所帮助。