我已经搜索了很多东西,但没有一个帮助过我。我想要实现的是每当我将Item设置为localstorage时,我也可以更新该特定Item。现在,如何更改/更新本地存储的值?我正在尝试,但它没有工作。
注意:我正在构建一个离子应用程序。
这是我的代码:
.factory('Auth', [function () {
if(window.localStorage['session']){
var _user = JSON.parse(window.localStorage['session']);
}
var setUser = function(session){
_user = session;
window.localStorage['session'] = JSON.stringify(_user);
}
return {
setUser: setUser,
isLoggedIn: function(){
return _user ? true : false;
},
getUser: function(){
return _user;
},
logout: function(){
window.localStorage.removeItem("session");
window.localStorage.removeItem("list_dependents");
_user = null;
}
}
}])
app.js
Auth.setUser({
name: 'Kean',
sex: 'Male'
});
alert(Auth.getUser(0).name);
// works fine.
//But when I update the name like this:
Auth.setUser(0).name = "Allen";
// It does not work.
我做错了吗?请帮忙。
答案 0 :(得分:0)
我已经解决了我的问题!感谢您的回复:
我刚在return
updateUser: function(updatedUser){
var the_user = this.getUser();
for(var attr in the_user){
if(updatedUser[attr]&& updatedUser[attr] !== the_user[attr]){
the_user[attr] = updatedUser[attr];
}
}
this.setUser(the_user);
}
当我更新特定数据时
Auth.updateUser({name: "A new Name"});
alert(Auth.getUser(0).name);
// Works 100%