【问题标题】:Adding to localStorage with JavaScript and Jade使用 JavaScript 和 Jade 添加到 localStorage
【发布时间】:2013-10-27 00:43:52
【问题描述】:

在 Jade 和渲染时数据传递给它的方式方面存在问题。

我正在尝试保存[{key1: "val1", key2: "val2"}, ...}]; 中的数据 格式但有问题,如下面的结果所示。

结果

key: xyz value:[{"artist":"Lady Gaga",...

这是我在服务器端 Node.js 上使用的代码,它可以正常传递...

res.render('musics', {
    title: 'site',
    result: JSON.stringify(result)
});

这是我遇到问题的代码,因为我必须在jade中调用结果...

script
    function local (arr) {
        var i;
        i = "#{result}";
        localStorage.setItem('xyz', i);
    }
    console.log('stored');
    local();

结果周围的引号搞砸了,但没有它们我会收到意外标识符的错误...

任何建议,或者是否最好通过 Backbone 进行 ajax 路由(这是我在客户端使用的)我愿意,只是提出一些指示 - 数据正在被抓取并通过表单发布的选择 - 因此数据在发布后返回并且是准时传输,所以如果我进行 ajax 调用,它必须包括发布和获取,否则我不确定如何接收它。 ..也许是服务器端的res.json(result),但是页面需要以某种方式呈现……欢迎提出建议。谢谢!最终,我希望它进入 localStorage 而没有 " 周围的一切。

【问题讨论】:

    标签: javascript ajax node.js backbone.js pug


    【解决方案1】:

    那么你的玉 sn-p 应该是这样的:

    script!= "(function() {localStorage.setItem('xyz',JSON.stringify(" +result + ");})();"
    

    通过使用 != 你告诉jade不要转义以下内容,并且在客户端你必须在将数据放入本地存储之前再次进行字符串化。

    【讨论】:

    • 我用这个但是给他们一个错误setItem not defined @greelgorke
    【解决方案2】:

    作为对@greelgork 答案的改进:

    这是用于 JSON 数组的

    script!= "(function() {var items = []; items = JSON.parse(localStorage.getItem('Stored_items')); console.log(JSON.stringify(items)); items.push(" + JSON.stringify(product) + "); localStorage.setItem('Stored_items', JSON.stringify(items)); })();"
    

    无论如何,将一个项目推入 localStorage 需要在插入 localStorage 之前是 stringified 因此,@greelgorke 的答案应该修改为:

    单项

    script!= "(function() {localStorage.setItem('xyz',JSON.stringify(result)); })();"
    

    所以JSON.stringifystring 之外,就像所有其他javascript 代码一样,
    这是我在我的项目中使用的,它很有效

    信用 Push JSON Objects to array in localStorage

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-21
      • 2017-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-21
      • 2020-06-16
      • 1970-01-01
      相关资源
      最近更新 更多