2013-10-15 4 views
27

Datei ich in einem Express für Node.js Web-App wie diese in einer Session-Variablen von meinem mongodb Session-Speicher bin vorbei:verketten eine Variable + String in Jade

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

Dann in meinem Jade-Datei Mich m versuchen, den Wert von pref zu dem CSS-Link wie folgt zugewiesen werden, aber ich bin einen Syntaxfehler bekommen:

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

ich bin fast sicher, dass das Problem in meiner Verkettung von pref in die Position des CSS ist zu verwendende Datei. Irgendwelche Ideen, wie das zu beheben ist?

Antwort

51

Verwenden Sie #{} Notation, wenn Sie eine Variable in den Inhalt eines Elements interpolieren möchten. Sie können die Variablennamen einfach gerade verwenden, wenn Sie sie in Attributen verwenden möchten.

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

äquivalent:

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

wenn #{} verwenden:

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

Perfect! Vielen Dank. –

+0

sehr klar, danke! – a20

3

Jade-Dateien werden in Node.js env zusammengestellt.

Node.js (von v4.0.0) unterstützt template literals, so

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

äquivalent:

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