首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在pug中将JSON作为javascript变量传递

在pug中将JSON作为javascript变量传递
EN

Stack Overflow用户
提问于 2017-05-16 04:41:46
回答 3查看 4.6K关注 0票数 3

我想要将一个对象数组传递到我的javascript代码块中,但我正在努力,因为它会对结果进行html编码,所以我在实际的JSON中有很多"

基本上,我的路由器从redis存储中获取JSON对象,我尝试将其传递给模板:

代码语言:javascript
复制
redis.getBuffer('languages', function (err, result) {
    res.render('manager/create-project', { title: 'Create Project', breadcrumbs: req.breadcrumbs(), languages: result })
})

我把它像这样赋值给我的变量:

代码语言:javascript
复制
script.
    $(document).ready(function() {
        var languages = #{languages};

问题:实际的javascript变量语言获得html编码的字符串,如下所示。

代码语言:javascript
复制
var languages = [{"id":"aa","text":"Afar"}]

如何正确地将JSON内容传递给javascript块?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-05-16 04:55:18

你需要插补而不是转义。这可以通过使用!而不是#来实现。

例如,将模板更改为以下内容可以解决您的问题:

代码语言:javascript
复制
script.
    $(document).ready(function() {
        var languages = !{languages};

作为参考,这里有指向docs的链接

票数 6
EN

Stack Overflow用户

发布于 2018-09-19 03:43:00

这样做的工作方式是(我知道这很可怕,但PUG是这样工作的)

代码语言:javascript
复制
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的更多信息

票数 5
EN

Stack Overflow用户

发布于 2020-03-22 12:49:14

这对我很有效:

NodeJs

代码语言:javascript
复制
res.render('itemdetails', {
    title: 'Donation item details',
    user: req.user,
    item: item.toJSON(),
    GOOGLE_MAP_API_KEY: process.env.GOOGLE_MAP_API_KEY
  });

Pug视图

代码语言:javascript
复制
 script.
  $(document)
    .ready(() => {
    createGlobalObjects('minimap');
    let item = !{JSON.stringify(item)};
    initLocationSearch(positionItemOnMap.bind(item));
  });

结果:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43988477

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档