2017-12-22 4 views
0

私のNodeJS-expressアプリケーションでは、テンプレート用のハンドルバーエンジンを使用しています。動的データによるルーティングが可能です。私は自分のアプリケーション用に1つのレイアウトファイルを持っています。データをテンプレートファイルに動的に渡すにはどうすればよいですか?エクスプレスハンドルバーのレイアウトファイル(パーシャル)に動的コンテンツを渡すにはどうすればよいですか?

編集:

ここは私のテンプレートファイルです。

<!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呼び出しからすべてです。ハードコードされていません。

+2

コードを入力して問題をコードで指摘できますか? – chirag

+0

質問を更新しました。見てください。この時間を見つけてくれてありがとう – Bharath

答えて

0

私はあなたがあなたのハンドルバーでこれを行うために必要があると思う:(私はそのシンプルなルーティングを前提とあなたはReactRouter V4のために適合させることができます。)

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

そして、あなたのエクスプレスのルートで、あなたがこれを行うことができますあなたがページに基づいてメニュー項目をフェッチするためにdatabseの呼び出しを行う必要がある場合

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 
     }) 
    }); 
}) 

}

関連する問題