在Jade文件中连接变量+字符串

时间:2013-10-15 18:43:08

标签: html node.js express pug

我在一个Express for Node.js网络应用程序中从我的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文件的位置。任何想法如何解决这个问题?

2 个答案:

答案 0 :(得分:61)

如果要在元素的内容中插入变量,请使用#{}表示法。如果要在属性中使用变量名,可以直接使用变量名。

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}

答案 1 :(得分:4)

Jade文件在Node.js env。

中编译

Node.js(来自v4.0.0)支持template literals,所以

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

当量:

link(rel='stylesheet', href='/stylesheets/' + pref + '.css')
相关问题