如何将对象从 pug 传递到前端 javascript
How to pass an object from pug to front end javascript
我正在使用哈巴狗,我想将一个变量传递给前端以获取信息,但是当我尝试这样做时,它像文本一样传递。
我就是这样做的。
控制器代码:
res.render('view/edit', {
title: 'Title',
sub:true,
data: variableObject
});
这是渲染视图中的代码:
script(type='text/javascript').
var x = "#{data}"
console.log(x);
这是日志的结果
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
我无法访问对象,因为它是文本,有没有办法像传递对象一样传递对象?
首先使用 JSON.stringify
:
将对象字符串化
res.render('view/edit', {
title: 'Title',
sub: true,
data: JSON.stringify(variableObject)
});
然后使用String Interpolation, Unescaped!{data}
script(type='text/javascript').
var x = !{data}
console.log(x);
或者只做一次,在你的模板中:
script(type='text/javascript').
var x = !{JSON.stringify(data)}
console.log(x);
(感谢@Matt,谢谢)
在这种情况下,我使用了这个:
var x = "#{ JSON.stringify(y) }"
console.log( JSON.parse(x.replace(/"/g,'"')) );
我不确定这是否是最佳做法。
我正在使用哈巴狗,我想将一个变量传递给前端以获取信息,但是当我尝试这样做时,它像文本一样传递。
我就是这样做的。
控制器代码:
res.render('view/edit', {
title: 'Title',
sub:true,
data: variableObject
});
这是渲染视图中的代码:
script(type='text/javascript').
var x = "#{data}"
console.log(x);
这是日志的结果
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
我无法访问对象,因为它是文本,有没有办法像传递对象一样传递对象?
首先使用 JSON.stringify
:
res.render('view/edit', {
title: 'Title',
sub: true,
data: JSON.stringify(variableObject)
});
然后使用String Interpolation, Unescaped!{data}
script(type='text/javascript').
var x = !{data}
console.log(x);
或者只做一次,在你的模板中:
script(type='text/javascript').
var x = !{JSON.stringify(data)}
console.log(x);
(感谢@Matt,谢谢)
在这种情况下,我使用了这个:
var x = "#{ JSON.stringify(y) }"
console.log( JSON.parse(x.replace(/"/g,'"')) );
我不确定这是否是最佳做法。