我在test
中有一个变量script.js
。我在script.js
文档的标题中引用index.jade
,如下所示:script(type="text/javascript")(src="scripts/script.js")
。
在我的index.jade
文件中,我需要使用test
变量,但在我尝试时,几乎在所有情况下都会收到错误'test' is not defined
。
我发现body(onload="alert(test);")
之类的内容可以访问test
变量,但p #{test}
或p= test
之类的内容无法访问它,这就是我的真实情况需要工作。
那么如何将script.js
中的变量传递给index.jade
以便Jade识别它?如果您有任何建议,请提前致谢。
答案 0 :(得分:3)
这是服务器端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 });