我在 script.js
中有一个变量 test
。我在我的 index.jade
文档的头部引用了 script.js
,如下所示:script(type="text/javascript")(src="scripts/script.js")
.
在我的 index.jade
文件中,我需要使用那个 test
变量,但是当我尝试这样做时,几乎在所有情况下我都会收到一个错误提示 “测试”未定义
。
我发现 body(onload="alert(test);")
可以访问 test
变量,但是 p # {test}
或 p= test
无法访问它,这正是我需要工作的地方。
那么如何将变量从 script.js
传递到 index.jade
以便 Jade 识别它?提前感谢您的任何建议。
最佳答案
这是服务器端的javascript:
- var colors = ['red', 'green', 'blue']
这是客户端:
body(onload="alert(colors);")
因为客户端的这种颜色是未定义的。你可以这样做:
body(onload="alert(#{colors});")
编辑:
如果 colors 是客户端 javascript 变量,那么你应该这样做:
ul#myul
script
window.addEventListener('load', function(){
var ul = document.getElementById('myul');
for(var i = 0; i < colors.length; i++){
var li = document.createElement('li');
li.innerHTML = colors[i];
ul.appendChild(li);
}
})
编辑:
test是客户端变量,不能作为服务端js变量。要将它与 jade 一起使用,您应该首先在 nodejs 中像这样从服务器传递它:
res.render('myviewpath', { test: test });
关于javascript - 在 Jade 中使用外部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15031546/