0

Node.js と ExpressJS 3.0 を使用しています。3.0 に移行すると、パーシャルがサポートされなくなったことに気付き、その後同様の機能を提供するエクスプレス パーシャルを見つけました。

GitHub ページの例を見ると、次のことがわかります。

app.get('/',function(req,res,next){
  res.render('index.ejs') 
  // -> render layout.ejs with index.ejs as `body`.
})

これは問題ありませんが、複数のパーシャルに依存するレイアウトがある場合はどうなるでしょうか? つまり、layout.ejsファイル内にヘッダー用のブロック、コンテンツ用のブロック、フッター用のブロックがある場合はどうなるでしょうか? たとえば、Web アプリケーション全体で 1 つのテンプレート ファイルを使用しているが、ユーザーの種類が異なればヘッダー、コンテンツ ブロック、フッターも異なる場合はどうなるでしょうか?

の限られたドキュメントを見ると、express-partialsこの機能が見つかりません。私は次のようなものを期待していました:

app.get('/', function (req, res) {
   res.render({header: 'header1.ejs', content: 'some_file.ejs', footer: 'footer1.ejs'});
   // -> render layout.ejs with header1.ejs as `header`, some_file.ejs as `content, and footer.ejs as `footer
});

この機能を実現するにはどうすればよいですか?

4

1 に答える 1

1

ejs includes + スイッチを使用することをお勧めします

申し訳ありませんが、私は ejs 構文に精通していないので、ジェイドですが、本質は同じです。

app.get('/', function (req, res) {
   res.render('index', {
       header: 'header1', 
       , content: 'content1', 
       , footer: 'footer1'
    });
});

index.jade
===========
//- header
case header
  when "header1":
    include "includes/header1"
  when "header2":
    include "includes/header2"
...
case content
  when "content1":
    include "includes/some_file1"
  when "content2":
    include "includes/some_file2"
....
于 2013-07-14T11:00:41.607 に答える