根据记录的用户将数据添加到本地存储

时间:2014-02-04 09:52:20

标签: jquery angularjs local-storage

如何使用angularjs保存正确登录的用户的详细信息? 例如:如果user1已登录,则页面应仅显示属于该用户的详细信息。那么如何根据logedin用户添加单独的密钥?

1 个答案:

答案 0 :(得分:0)

给出一个简单的用户数组

$scope.users = [
  { id: 1, name: "userOne", email: "userOne@email_provider.com" },
  { id: 2, name: "userTwo", email: "userTwo@email_provider.com" }
];

然后我会写一个带id的函数并找到相应的用户,然后将它存储在localStorage中。当然,这可以被重写以获取你的currentUser(但是你在代码中声明了这一点)。

$scope.storeUser = function (id) {
  var user = _.find($scope.users, function (x) { return x.id === id; }); // _.find is a function found in either underscore.js or lodash. Links to both at the bottom.
  localStorage.setItem('user-' + user.id, angular.toJson(user));
};

然后从localStorage获取该项目并将其设置为$ scope。

$scope.loadUser = function (id) {
  var user = JSON.parse(localStorage.getItem('user-' + id));
  console.log(user);
};

然后我们可以在初始化时直接在我们的控件中运行这两个函数,或者使用类似这样的东西(其中1是用户的id)从我们的DOM中运行:

<button ng-click="storeUser(1)">Store me</button>
<button ng-click="loadUser(1)">Load me</button>

此代码可能不适合您的需要,但它应该让您了解如何使用localStorage设置和获取具有唯一标识符的项目。

希望这会让你走上正确的道路,祝你好运:)

UnderscoreJS:https://github.com/jashkenas/underscore

Lodash:https://github.com/lodash/lodash