车把的隐藏/显示部分,取决于路线URL

问题描述 投票:0回答:1

我正在使用把手和nodejs创建一个包含某些部分(把手文件)的网页,例如:关于我们,联系我们,我们的服务,登录名,页脚等。默认情况下,所有部分均可见,但我想隐藏一个部分其中,如果呼叫登录表单,则将网址栏设置为:http://www.mypage.com/login。在我的车把模板中,我有:main.hbs

<body>
    {{> navbar}}
    <main class="container-fluid">
        {{> messages}}
        {{{body}}}
        {{> about}}
        {{> services}}
    </main>
    {{> footer}}
</body>

如何隐藏或显示{{> about}}或{{> services}},或者如果我显示登录表单怎么办?登录链接位于导航栏内

预先感谢

routes handlebars.js hide show
1个回答
0
投票

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

保持主布局正常。

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

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

app.get('/login', (req, res) => {
    res.render('login', {layout: 'main2'}) 
})
© www.soinside.com 2019 - 2024. All rights reserved.