在pug中将JSON作为javascript变量传递
我想将一个对象数组传递到我的javascript代码块中,但我正在努力,因为它将对结果进行html编码,因此我在实际的JSON中获得了大量的在pug中将JSON作为javascript变量传递,javascript,json,node.js,express,pug,Javascript,Json,Node.js,Express,Pug,我想将一个对象数组传递到我的javascript代码块中,但我正在努力,因为它将对结果进行html编码,因此我在实际的JSON中获得了大量的“ 基本上,我的路由器从redis商店获取JSON对象,我正在尝试将其传递给模板: redis.getBuffer('languages', function (err, result) { res.render('manager/create-project', { title: 'Create Project', breadcrumbs: req
“
基本上,我的路由器从redis商店获取JSON对象,我正在尝试将其传递给模板:
redis.getBuffer('languages', function (err, result) {
res.render('manager/create-project', { title: 'Create Project', breadcrumbs: req.breadcrumbs(), languages: result })
})
我这样将其分配给我的变量:
script.
$(document).ready(function() {
var languages = #{languages};
问题:
实际的javascript变量语言获取html编码的字符串,如下所示
var languages = [{"id":"aa","text":"Afar"}]
如何将JSON内容正确地传递到javascript块?您需要在不转义的情况下进行插值。这可以通过使用
!
而不是
来实现
例如,将模板更改为以下内容可以解决您的问题:
script.
$(document).ready(function() {
var languages = !{languages};
作为参考,这里有一个链接,指向的是(我知道这很可怕,但帕格就是这样工作的) 2018年工作 关于这一点的更多信息对我很有用: NodeJs:
res.render('itemdetails', {
title: 'Donation item details',
user: req.user,
item: item.toJSON(),
GOOGLE_MAP_API_KEY: process.env.GOOGLE_MAP_API_KEY
});
script.
$(document)
.ready(() => {
createGlobalObjects('minimap');
let item = !{JSON.stringify(item)};
initLocationSearch(positionItemOnMap.bind(item));
});
哈巴狗视图:
res.render('itemdetails', {
title: 'Donation item details',
user: req.user,
item: item.toJSON(),
GOOGLE_MAP_API_KEY: process.env.GOOGLE_MAP_API_KEY
});
script.
$(document)
.ready(() => {
createGlobalObjects('minimap');
let item = !{JSON.stringify(item)};
initLocationSearch(positionItemOnMap.bind(item));
});
结果:
否决这个问题的人能解释一下他为什么这么做吗?也许我可以改进我的问题。太好了,我没有意识到这一点!很高兴能提供帮助!大多数模板语言自动转义HTML字符以防止意外代码执行(如注释中的脚本标记),因此,当neededIt根本不起作用时,最好知道如何进行控制,如果
语言
是JSON,则如果使用!
语法调用,帕格也会将其字符串化