【发布时间】:2018-02-18 05:13:45
【问题描述】:
我已经搜索了很多东西,但没有一个对我有帮助。我想要实现的是,每当我将一个项目设置为我的本地存储时,我也可以更新那个特定的项目。现在,如何更改/更新本地存储的值?我正在尝试,但它不起作用。
注意:我正在构建一个离子应用程序。
这是我的代码:
.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.
我做错了吗?请帮忙。
【问题讨论】:
-
看看你的return语句中setUser和getUser的区别。调用 setUser() 什么都不做。
-
你不应该更新名字叫
Auth.getUser(0).name = ...而不是Auth.setUser(...吗? -
我该怎么办?
-
将
0传递给setUser()是没有意义的。如所写,您说“将函数传递给0”,然后在函数中,您说“set_user 到传入的内容(0)”,然后“字符串化_user”(其值为0)。最重要的是,setUser不会返回任何内容,因此setUser(0).name无论如何也不会工作。 -
请给我一个更新数据的代码
标签: javascript html angularjs ionic-framework local-storage