2014-06-16 38 views
0

我正在制作一个节点快车应用程序。我正试图将一个值从玉石传递给一个JavaScript文件。将变量从jade文件传递给javascript文件

在我使用的服务器端:

res.render('index', { title: 'Title', test: 1 }); 

在我index.jade文件我有以下几点:

script(type='text/javascript', src='http://code.jquery.com/jquery-1.9.1.js') 
script(type='text/javascript', src='http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.24/jquery-ui.js') 
script(type='text/javascript', src='./javascripts/ui.js') 
script(type='text/javascript', src='./javascripts/handle.js'). 
    var data = !{test} 
block content 
    h3= title 

在我handle.js文件我有

$(function() { 

    console.log(data); 
}); 

在控制台上,我收到一条消息,说没有定义数据。我如何将测试的值从jade文件传递给javascript文件?目前test只是一个整数,但最终它将是一个包含很多属性的对象。

如何正确地将jade文件中的值传递给javascript文件?

+0

你必须使用一个单独的'script.'为内嵌脚本。 [内嵌脚本与SRC属性?](http://stackoverflow.com/questions/1056325/javascript-inline-script-with-src-attribute) –

+0

该答复似乎说,我不能有内联源和使用src在同一时间的论点。那么,我应该如何将jade文件中的值传递给js文件呢? – AndroidDev93

+0

我如何使内联脚本中定义的变量与javascript src文件相关联(在本例中为handle.js) – AndroidDev93

回答

0

这只适用于文字。对于你可以这样做的对象:

var data = !{JSON.stringify(data)}; 

至于显示未定义的部分,检查它是否正确设置,它是正确的变量。

确保您加载正确的顺序:

script(type='text/javascript')             
    var data =!{JSON.stringify(test)}; 
script(src='./javascripts/handle.js) 
+0

我试过了,我仍然收到错误,说数据是未引用类型。 – AndroidDev93

+0

@ AndroidDev93嗨,我更新了答案。 – user568109

+0

我仍然收到新的回答 – AndroidDev93

相关问题