有Jade的问题以及数据在呈现时传递给它的方式。
我正在尝试保存[{key1: "val1", key2: "val2"}, ...}];
中的数据
格式,但有问题,因为它显示为下面的结果。
结果
key: xyz value:[{"artist":"Lady Gaga",...
这是我在服务器端Node.js上使用的代码,它传递的很好......
res.render('musics', {
title: 'site',
result: JSON.stringify(result)
});
这是我遇到问题的代码,因为我必须在jade中调用result ...
script
function local (arr) {
var i;
i = "#{result}";
localStorage.setItem('xyz', i);
}
console.log('stored');
local();
围绕结果的引用搞砸了,但没有它们我得到了意外标识符的错误......
任何建议或者如果通过Backbone进行ajax路由可能会更好(这是我在客户端使用的)我愿意,只是为了提出一些指示 - 数据被刮掉并通过选择一个表格帖子 - 所以数据在帖子之后回来并且是准时转移,所以如果我做了一个ajax调用它必须包括帖子和get,否则我不知道如何接收它。 ..也许res.json(结果)在服务器端,但然后页面需要以某种方式呈现...打开建议。谢谢!最终,我希望它能够在没有“围绕一切的情况下进入localStorage。”
答案 0 :(得分:2)
你的jade片段应该是这样的:
script!= "(function() {localStorage.setItem('xyz',JSON.stringify(" +result + ");})();"
使用!=你告诉jade不要逃避以下内容,在客户端,你必须先将再次字符串化,然后再将数据存入本地存储。
答案 1 :(得分: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.stringify
在string
之外,就像所有其他javascript
代码一样,
这就是我在我的项目中使用它和它的问题