如何更新本地存储值?

时间:2017-09-09 12:23:44

标签: javascript html angularjs ionic-framework local-storage

我已经搜索了很多东西,但没有一个帮助过我。我想要实现的是每当我将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.

我做错了吗?请帮忙。

1 个答案:

答案 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%