web-dev-qa-db-fra.com

Concaténation d'une variable + chaîne dans un fichier Jade

Je transmets une variable de session de mon magasin de sessions mongodb dans une application Web Express for Node.js comme celle-ci:

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

Ensuite, dans mon fichier Jade, j'essaie d'attribuer la valeur de pref au lien CSS comme ceci, mais j'obtiens une erreur de syntaxe:

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

Je suis presque certain que le problème réside dans ma concaténation de pref dans l'emplacement du fichier css à utiliser. Une idée sur comment réparer ça?

31
gjw80

utilisation #{} notation si vous souhaitez interpoler une variable dans le contenu d'un élément. vous pouvez simplement utiliser les noms de variables directement si vous souhaitez les utiliser dans des attributs.

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

équivalent:

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

quand utiliser #{}:

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

Les fichiers Jade sont compilés dans Node.js env.

Node.js (à partir de la v4.0.0) prend en charge littéraux de modèle , donc

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

équivalent:

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