使用JavaScript和Jade添加到localStorage

与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(); 

结果周围的引号搞砸了,但没有他们,我得到意外的标识符错误…

任何build议,或者如果最好通过骨干(这是我使用的客户端)ajax路线我愿意,只是要指出 – 数据被刮,通过select一个forms职位 – 所以数据回来后,是一个准时转移,所以如果我做了一个Ajax调用它将不得不包括职位和获得,否则我不知道如何接收它…也许res.json(结果)在服务器端,但是然后页面需要渲染以某种方式…打开build议。 谢谢! 最终,我希望它进入localStorage没有“围绕一切。

你的玉片应该看起来像这样:

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

通过使用!=你告诉玉不能逃避以下内容,并在客户端,你必须再次 stringify之前把你的数据本地存储。

作为对@ 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.stringify就像所有其他的javascript代码一样,
这是我在我的项目中使用的,它是worx

信用 推送JSON对象在localStorage中排列