3

我有一个变量,test, in 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.jsinto传递给index.jadeJade 来识别它呢?提前感谢您提供的任何建议。

4

1 回答 1

4

这是服务器端的 JavaScript:

- var colors = ['red', 'green', 'blue']

这是客户端:

body(onload="alert(colors);")

因为客户端的颜色是未定义的。你可以这样做:

body(onload="alert(#{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 变量。要将它与玉一起使用,您应该首先在 nodejs 中像这样从服务器传递它:

res.render('myviewpath', { test: test });
于 2013-03-01T20:19:10.563 回答