web-dev-qa-db-ja.com

Jadeファイルで変数と文字列を連結する

次のように、Express for Node.js Webアプリのmongodbセッションストアからセッション変数を渡します。

exports.dashboard = function(req, res){
    res.render('dashboard', {pref: req.session.layoutpref});
}

次に、私のJadeファイルで、次のようにprefの値をcssリンクに割り当てようとしていますが、構文エラーが発生しています。

head
        title #{title}
        link(rel='stylesheet', href='/stylesheets/' + #{pref} + '.css')

使用するcssファイルの場所へのprefの連結に問題があることはほぼ確実です。これを修正する方法はありますか?

31
gjw80

要素の内容に変数を挿入する場合は、#{}表記を使用します。変数で使用する場合は、変数名をまっすぐに使用できます。

link(rel='stylesheet', href='/stylesheets/' + pref + '.css')

同等のもの:

link(rel='stylesheet', href='/stylesheets/' + locals.pref + '.css')

#{}を使用する場合:

a(href='/stylesheets/' + locals.pref + '.css') View the stylesheet at #{pref}
61
Plato

JadeファイルはNode.js環境でコンパイルされます。

Node.js(v4.0.0以降)は テンプレートリテラル をサポートするため、

link(rel='stylesheet', href=`/stylesheets/${pref}.css`)

同等のもの:

link(rel='stylesheet', href='/stylesheets/' + pref + '.css')
4