把手隐藏/显示部分取决于路线URL

时间:2019-10-15 01:20:31

标签: routes handlebars.js hide show

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

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

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

预先感谢

1 个答案:

答案 0 :(得分:1)

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

保持主布局正常。

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

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

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