首先,我想为我的英语道歉。
我在路由器文件上有这个代码:
exports.index = function (req, res) {
res.render('./game/main', {name:req.session.name, menuOp:'Home'});
}
然后我从另一个文件扩展了.jade。
[main.jade]
extends mainLayout
block topMenu
-var selected = '#{menuOp}'
但这会引发错误。 我的问题是......为什么我可以打印变量而不能分配给另一个?我的意思是,以下代码工作正常:
block topMenu
h1 #{menuOp}
但是当我尝试分配时,不起作用。
顺便说一下,我试过这个并且也工作了:
block topMenu
-var selected = 'Home'
所以我认为问题是#{variable}只适用于打印或其他东西。
答案 0 :(得分:0)
这并不是100%清楚你想要做什么,但我认为你想要的是:
block topMenu
-var selected = '#' + menuOp
当您使用短划线时,Jade将后面的内容解释为JavaScript,因此将变量放在字符串中不会扩展变量。如果你真的想要一个将哈希放在字符串前面的新变量,你可以使用上面的语法。