31

我在 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')

我几乎可以肯定问题在于我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 环境中编译。

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 回答