1

Jade 存在问题,以及数据在呈现时传递给它的方式。

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

结果

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

这是我在服务器端 Node.js 上使用的代码,它通过它很好......

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

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

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

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

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

4

2 回答 2

2

你的翡翠片段应该是这样的:

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

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

于 2013-10-18T09:29:00.953 回答
0

作为对@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无论如何,需要stringified在插入之前将项目推入localStorage,因此,@greelgorke 的答案应该修改为:

单项

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

所以就像所有其他代码一样, 这是我在我的项目中使用的,它JSON.stringifystringjavascript

Credit Push JSON Objects to array in localStorage

于 2016-09-21T21:37:33.410 回答