如何将动态内容传递给Express Handlebars中的布局文件(部分)



在我的nodejs-express应用中,我正在使用车把引擎进行模板。与动态数据进行路由是可能的。我的应用程序有一个布局文件。如何动态传递数据到模板文件?

编辑:

这是我的模板文件。

<!DOCTYPE html>
<html>
  <head>
  </head>
  <body>
    <nav>
      <div>
        <ul class="navbar-nav">
          <li class="nav-item active">
            <a>Home</a>
          </li>
          <li class="nav-item">
            <a>about</a>
          </li>
          <li class="nav-item">
            <a>contact</a>
          </li>
        </ul>
      </div>
    </nav>
    {{{body}}}
  </body>
</html>

我需要NAV项目(主页,关于联系),全部来自API呼叫。没有硬编码。

我认为您需要在车把上执行此操作:

<!DOCTYPE html>
<html>
  <head>
  </head>
  <body>
    <nav>
      {{{navStuff}}}
    </nav>
    {{{body}}}
  </body>
</html>

在您的快速路线中,您可以做到这一点:(我假设它的简单路由。您可以适应Rectrouter V4)

app.get('/home', function(req, res, next){
return res.render('app',{
    body: toRender,
    navStuff: menu
    })
});

同样,如果您必须进行数据呼叫以根据页面获取菜单项,则可以采用以下方式:

app.get('/home', function(req, res, next){
 getMenuFromDb(pathName).then(function(menu){
    return res.render('app',{
        body: toRender,
        navStuff: menu
        })
    });
})

})

最新更新