31

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

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

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

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

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

4

2 に答える 2

65

#{}要素の内容で変数を補間する場合は、表記法を使用します。変数名を属性で使用する場合は、変数名をそのまま使用できます。

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}
于 2013-10-15T18:55:39.497 に答える
4

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

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

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

同等:

link(rel='stylesheet', href='/stylesheets/' + pref + '.css')
于 2017-01-08T20:51:33.947 に答える