在Jade中使用外部变量

时间:2013-02-22 19:12:49

标签: javascript variables pug

我在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识别它?如果您有任何建议,请提前致谢。

1 个答案:

答案 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 });