2013-10-15 13 views
27

sto passando in una variabile di sessione dal mio negozio MongoDB sessione in un Express per Node.js web app come questo:Concatenare una variabile + stringa nel file di Jade

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

Poi, nel mio Giada file' m cercando di assegnare il valore di pref al link css come questo, ma sto ottenendo un errore di sintassi:

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

sono quasi certo il problema è nel mio concatenazione di pref nella posizione del css file da utilizzare. Qualche idea su come risolvere questo problema?

risposta

51

utilizzare la notazione #{} se si desidera interpolare una variabile nei contenuti di un elemento. puoi semplicemente usare i nomi delle variabili direttamente se vuoi usarli negli attributi.

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

equivalente:

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

quando utilizzare #{}:

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

Perfetto! Grazie. –

+0

molto chiaro, grazie! – a20

3

file Jade sono compilati in Node.js ENV.

Node.js (da v4.0.0) supporta template literals, così

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

equivalente:

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