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();
结果周围的引号把它弄乱了,但是没有它们,我会得到一个意外标识符的错误...
任何建议,或者如果它可能是更好的去 AJAX 路线通过 Backbone (这是我在客户端使用的)我愿意,只是把一些指针-数据被抓取,并通过一个表单post的选择-所以数据在post后返回,是一个按时传输,所以如果我做了一个 AJAX 调用,它将不得不包括post和get,否则我不知道如何接收它...也许res.json(result)在服务器端,但然后页面需要以某种方式呈现...开放的建议。谢谢!最终我希望它进入localStorage没有“周围的一切。
3条答案
按热度按时间jk9hmnmh1#
那么您的Jade片段应该如下所示:
通过使用!=,你告诉jade不要转义下面的内容,并且在客户端,你必须在把你的数据放到本地存储之前再次字符串化***。
gk7wooem2#
作为对@greelgork的回答的改进:
这适用于JSON数组
无论如何,将一个项目推入
localStorage
需要在插入到localStorage
之前是stringified
,因此,@greelgorke的答案应该修改为:单项
所以
JSON.stringify
在string
之外就像其他的javascript
代码一样,这是我在我的项目中使用的,它worx
贷方Push JSON Objects to array in localStorage
l2osamch3#