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