Routes 车把隐藏/显示部分取决于路线url

Routes 车把隐藏/显示部分取决于路线url,routes,handlebars.js,hide,show,Routes,Handlebars.js,Hide,Show,我正在使用handlebars和nodejs创建一个包含某些部分(handlebars文件)的网页,如:关于我们、联系我们、我们的服务、登录、页脚等。默认情况下,所有部分都可见,但如果调用登录表单,我想隐藏其中一部分,将url栏设置为:。在我的车把模板中,我有: main.hbs {{>navbar} {{>消息} {{{body}}} {{>关于} {{>服务} {{>页脚} 如果我显示登录表单,我可以做什么来隐藏或显示{{>关于}}或{{>服务}或其他什么???。登录链接位于导航栏内 提

我正在使用handlebars和nodejs创建一个包含某些部分(handlebars文件)的网页,如:关于我们、联系我们、我们的服务、登录、页脚等。默认情况下,所有部分都可见,但如果调用登录表单,我想隐藏其中一部分,将url栏设置为:。在我的车把模板中,我有: main.hbs


{{>navbar}
{{>消息}
{{{body}}}
{{>关于}
{{>服务}
{{>页脚}
如果我显示登录表单,我可以做什么来隐藏或显示{{>关于}}或{{>服务}或其他什么???。登录链接位于导航栏内


提前感谢

最简单的方法是使用布局(模板)。不同的把手文件可以使用不同的布局

让你的主布局正常

要更改的一个,创建一个新布局,当调用登录把手文件时,使其使用不同的布局

我不确定如何设置车把,但如果是默认设置,则布局文件位于视图/布局中。在layouts文件夹中,创建Handlebar文件并将其命名为example main2.hbs,然后下面的代码是告诉express使用layout main2作为布局的路线代码。关于您的登录表单,我假设您有一个名为login.hbs的登录页面。如果没有,请将“登录”更改为您的把手视图文件

app.get('/login', (req, res) => {
    res.render('login', {layout: 'main2'}) 
})

这不是我所期望的,但对我来说绝对有效,真的很简单。非常感谢,我拥有你一个!还有一些更难的方法,比如基于条件的if语句,可以使用partials,但是对于您的情况,它的布局是最简单的。在开始时保持简单,然后随着逻辑变得更难,使其更复杂。
app.get('/login', (req, res) => {
    res.render('login', {layout: 'main2'}) 
})