我试图从routes / index.js传递一个测试数据:
/* GET Hello World page. */
router.get('/helloworld', function(req, res) {
res.render('helloworld', { title: 'Hello, World!', data: {'val' : 'This is a Test'}})
});

to views / helloworld.jade:
extends layout
block content
h1= title
p Welcome to #{title}
script(type='text/javascript').
var data = !{JSON.stringify(data)};

我在浏览器中的结果是:
Hello, World!
Welcome to Hello, World!data = ;

我没有收到任何错误消息,但如何让数据显示在浏览器中?
感谢。
答案 0 :(得分:0)
你有没有费心阅读文件?
所有纯文本都在带有竖线字符的新行上缩进。
extends layout
block content
h1= title
p
| Welcome to
!{title}
script(type="text/javascript")
| var data = JSON.stringify(
!{data}
| );
我实际上无法告诉你用脚本做什么,但这是我最好的猜测。
答案 1 :(得分:0)
这很有效。在routes / index.js中:
router.get('/helloworld', function(req, res) {
res.render('helloworld', { title: 'Hello, World!', data:{'val':'This is a Test'}})
});

在views / helloworld.jade中:
extends layout
block content
h1= title
p Welcome to #{title}
script(type='text/javascript').
var data = !{JSON.stringify(data)};

我的浏览器输出是:
Hello, World!
Welcome to Hello, World!
data = {"val":"This is a Test"};

但请看这篇文章中的答案1:transfer data from jade to jquery and vice versa他们所拥有的代码并不起作用。 " JSON.stringify"不会在路由器文件中工作,如果你缩进" var"视图文件中有2个空格,它也不会起作用。我在文档中看不到任何原因。接下来我需要实际使用"数据"变量要在html文件中打印出来,但无法找到该怎么做。我应该耐心等待,但我已准备好继续使用Jade的另一个模板引擎。其他人有类似的挫折感吗?
答案 2 :(得分:0)
这是各种方法的输出,第一种方法是最好的。我不认为你想在routes / index.js中对对象进行字符串化,因为那时你无法在helloworld.jade文件中对数据进行维护。所以我保留了index.js。视图/ helloworld.jade:
extends layout
block content
h1= title
p These 2 work and are the same
p #{data.val}
p !{data.val}
p Without the extension returns an object
p #{data}
p !{data}
Trying to stringify almost works except has quotes
p #{JSON.stringify(data)}
p #{JSON.stringify(data.val)}
p !{JSON.stringify(data.val)}
p Trying to set a variable doesn't seem to work at all
script(type='text/javascript').
var newdata = !{JSON.stringify(data)};
p The variable output
p #{newdata}
p bottom of file
script(type='text/javascript').
console.log("testing");
这是输出:
Hello, World!
These 2 work and are the same
This is a Test
This is a Test
Without the extension returns an object
[object Object]
[object Object]
to stringify almost works except has quotes
{"val":"This is a Test"}
"This is a Test"
"This is a Test"
Trying to set a variable doesn't seem to work at all
The variable output
bottom of file
我无法想出一种设置变量并将其显示在.jade文件中的方法,但毫无疑问,这是一种我不知道的方式。希望这有助于其他人遇到同样的问题。