我想要将一个对象数组传递到我的javascript代码块中,但我正在努力,因为它会对结果进行html编码,所以我在实际的JSON中有很多"
。
基本上,我的路由器从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块?
发布于 2017-05-16 04:55:18
你需要插补而不是转义。这可以通过使用!
而不是#
来实现。
例如,将模板更改为以下内容可以解决您的问题:
script.
$(document).ready(function() {
var languages = !{languages};
作为参考,这里有指向docs的链接
发布于 2018-09-19 03:43:00
这样做的工作方式是(我知道这很可怕,但PUG是这样工作的)
script(type="text/javascript").
$(document).ready(function(){
var languages = !{JSON.stringify(languages)}
});
致力于2018年
有关http://www.mircozeiss.com/how-to-pass-javascript-variables-from-a-server-to-angular的更多信息
发布于 2020-03-22 12:49:14
这对我很有效:
NodeJs
res.render('itemdetails', {
title: 'Donation item details',
user: req.user,
item: item.toJSON(),
GOOGLE_MAP_API_KEY: process.env.GOOGLE_MAP_API_KEY
});
Pug视图
script.
$(document)
.ready(() => {
createGlobalObjects('minimap');
let item = !{JSON.stringify(item)};
initLocationSearch(positionItemOnMap.bind(item));
});
结果:
https://stackoverflow.com/questions/43988477
复制相似问题