检索localStorage的最后一个对象中的值
retrieve value in last object of localStorage
我正在尝试检索localStorage中的最后一个对象(具有"name"answers"email"属性的用户(。我想单独访问"name"answers"email"值,并将它们打印为字符串。这就是我的模板输出:
{"name":"eamon","email":"eamon.white@yahoo.com"}
我希望它输出:
eamon, eamon.white@yahoo.com
这是我的代码:
templates/usershow.ejs
<ul>
<li><%= localStorage.getItem(localStorage.key(localStorage.length - 1)) %></li>
</ul>
application.js
$(document).ready(function() {
$("#signupform").submit(function(e) {
e.preventDefault();
var user = {
name: $('#pname').val(),
email: $('#email').val()
};
localStorage.setItem('user', JSON.stringify(user));
//console.log(JSON.parse(localStorage.getItem('user')));
var html = new EJS({url: 'templates/usershow.ejs'}).render(user);
var content = document.getElementById('content');
content.innerHTML = content.innerHTML + html;
$("#signupform").remove();
});
});
index.html
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>it IT</title>
<link rel="stylesheet" type="text/css" href="application.css" />
<script src="jquery.js"></script>
<script src="application.js"></script>
<script type="text/javascript" src="ejs_production.js"></script>
<!--[if lt IE 9]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
</head>
<body>
<h1>it IT</h1>
<div id="signup">
<form id="signupform">
Name: <input type="text" name="pname" id="pname"><br>
Email: <input type="text" name="email" id="email"><br>
<input type="submit" value="sign up">
</form>
</div>
<div id="signin"></div>
<div id="content"><h2>Name : Email</h2></div>
</body>
</html>
更新
我把模板改成了这个:
<ul>
<li><%= localStorage.getItem(localStorage.key(localStorage.length - 1)).name %></li>
</ul>
现在,它似乎返回了一个空字符串,它们在渲染页面上的列表项目符号旁边什么都不是。我正在尝试创建一个用户数据库,本质上。。。这样做吗?
此外,我得到这个错误:
XMLHttpRequest cannot load file://localhost/Users/Eamon/code/templates/usershow.ejs. Cross origin requests are only supported for HTTP. ejs_production.js:1
Uncaught #<Object> ejs_production.js:1
在镀铬控制台中。。。什么都不呈现。。。但firefox似乎一切都正常。。。
更新
这消除了加载文件错误:
var html = new EJS({url: 'http://localhost/code/templates/usershow.ejs'}).render(user);
这是一个正确的解决方案吗?我仍然收到Uncaught #<Object> ejs_production.js:1
错误。
想明白了,更改了此行的内容:
<%= JSON.parse(localStorage.getItem(localStorage.key(localStorage.length - 1))).name %>
但是仍然可以使用在简单SPA中维护用户数据库的一点指导。
当您启动CHROME浏览器时,添加命令行选项--allow-file-access-from-files
这应该可以修复您的XMLHttpRequest
错误。
- Parse.com在循环中保存对象,只保存最后一个对象
- 如何在Javascript中的对象数组的最后一个对象之后附加几个新对象
- Javascript事件处理程序总是被添加到数组中的最后一个对象
- Javascript - 循环访问对象数组,仅显示最后一个对象
- JS将对象推送到变量,将最后一个对象添加到所有元素中
- 主干集合视图仅渲染集合中的最后一个对象
- JSON 从最后一个对象中删除尾随逗号
- for 循环仅显示数组中的最后一个对象
- 更有效的方法来删除第一个和最后一个对象
- 检索localStorage的最后一个对象中的值
- 为什么onclick只被分配给最后一个对象?
- 使用jquery迭代数组只返回最后一个对象
- jQuery -删除最后一个对象的关键
- 不能检索Angularjs $scope数组的最后一个对象
- 如何在字符串对象的两个对象之间添加逗号,而不是最后一个对象
- 从对象数组中删除最后一个对象
- 获取selector中的第一个和最后一个对象
- 检索JSON对象列表中的最后一个对象
- 我在一个对象中创建了两个不同的对象.在打印它们时,只显示最后修改的对象.如何创造
- 如何定义第一个和最后一个对象并停止循环