3

私は変数、、を持っていtestますscript.js。ドキュメントscript.jsの head で次のように参照します。index.jadescript(type="text/javascript")(src="scripts/script.js")

私のindex.jadeファイルでは、そのtest変数を使用する必要がありますが、使用しようとすると、ほとんどの場合、'test' is not defined.

body(onload="alert(test);")のようなものは変数にアクセスできますが、test変数のようなものp #{test}やアクセスできないことがわかりましたp= test。これは、実際に作業する必要があるものです。

では、Jade が認識できるように、変数を from に渡すにはどうすればよいscript.jsでしょうか? index.jadeアドバイスをよろしくお願いします。

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 変数として使用することはできません。jade で使用するには、まず nodejs で次のようにサーバーから渡す必要があります。

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