How do I pass variable from a Jade template file to a Javascript file?

柔情痞子 提交于 2019-12-01 10:30:05

问题


Im very new to Node.js and trying to get my head round few things.How do I pass variable from a Jade template file to a JS file?

I have got this line of code in my server.js file

res.render("aws.jade", {data : JSON.stringify({'val' : 'This is a Test'})});

Basically Im just trying to get values in data to aws.jade template file

And this is aws.jade

html
    head
       script(type='text/javascript')
            var data = !{data}
        link(rel='stylesheet', href='/stylesheets/style.css')
    body
        title Title
        h1 Heading
        #div.test

I keep getting this error in the Firebug console:

<var>data = {"val":"This is a Test"}</var>

Could someone please explain as to why this is happening and a way for me to pass variable from a Jade template file to a JS file?

Thank You


回答1:


Try adding a . character after the script, this tells Jade that you want a block of text inside a tag.

Here's your updated code.

html
    head
        script(type='text/javascript').
            var data = !{data}
        link(rel='stylesheet', href='/stylesheets/style.css')
    body
        title Title
        h1 Heading
        #div.test

EDIT - To set title to data.val

First you should change your response, remove JSON.stringify so you're returning an object not a string value.

res.render("aws.jade", {data : {'val' : 'This is a Test'}});

Then you should be able to access the data objects attributes and structure directly using dot notation, and assign it straight to the title element like this...

title= data.val


来源:https://stackoverflow.com/questions/21239105/how-do-i-pass-variable-from-a-jade-template-file-to-a-javascript-file

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!