マイExpressのアプリがEJSを使用している含まれており、私の意見ディレクトリは次のようになります。使用する補間は
./views
./contents
home.ejs
./includes
header.ejs
footer.ejs
layout.ejs
は私layout.ejsビューで条件付きベースhome.ejsをロードしようとしています私のルート/ index.jsにあるcontents
という名前のローカル変数にあります。
/*
* GET home page.
*/
exports.index = function(req, res){
res.render('index', { title: 'Home', contents: 'home.ejs' });
};
理想的には、私は単に(layout.ejsに)書くことができます::
末尾「内容」は、本体に相対パスが含まれているローカル変数である<% include '/contents' + contents %>
そのファイルは次のようになります読み込むテキスト。
しかし、まあ、EJSは常にinclude
という指示文に続くテキストを解釈し、補間マジックが起こる機会はないようです。
私も無駄にしようとしました:
<% function yieldContent(contents){ %>
<% var contentPath = 'contents/' + contents; %>
<% include contentPath %>
<% }; %>
<% loadContent(); %>
誰もが条件付きルートに渡された変数に基づいてビューを含むための創造的な解決策を持っていますか?
これまでに解決されましたか? –
+1、ダイナミックではない場合、includeのポイントは何ですか?私はそれを使用する方法を取得しません。 –