我有一个项目涉及十几条路线,所有这些路线都需要一个导航栏和我想包含在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
});
希望能有所帮助。