如何将动态内容传递到快速把手中的布局文件(部分)?

时间:2017-12-22 15:27:20

标签: node.js express handlebars.js templating-engine

在我的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>
&#13;
&#13;
&#13;

我需要导航项目(home,about,contact)全部来自API调用。没有硬编码。

1 个答案:

答案 0 :(得分:0)

我认为您需要在把手中执行此操作:

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

在你的Express路线中,你可以这样做:(我假设它的路由简单。你可以适应ReactRouter 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
        })
    });
})

})