如何在angularjs中存储用户详细信息以供进一步使用
我正在使用angularjs开发web应用程序。我在整个应用程序中都需要用户的电子邮件地址,如何存储它以供进一步使用 目前我正在做的是: 我已经创建了一个用户服务如何在angularjs中存储用户详细信息以供进一步使用,angularjs,angularjs-scope,Angularjs,Angularjs Scope,我正在使用angularjs开发web应用程序。我在整个应用程序中都需要用户的电子邮件地址,如何存储它以供进一步使用 目前我正在做的是: 我已经创建了一个用户服务 'use strict'; var module = angular.module('moduleName'); module.factory('UserService',['$resource',function($resource){ var currentUserEmail = null; return {
'use strict';
var module = angular.module('moduleName');
module.factory('UserService',['$resource',function($resource){
var currentUserEmail = null;
return {
getUserResource : function(){
return $resource('users',{email:'@email'});
},
saveCurrentUserEmail : function (email){
currentUserEmail = email;
},
getCurrentUserEmail : function (){
return currentUserEmail;
}
};
}]);
登录时,我使用用户服务存储用户电子邮件地址:
UserService.saveCurrentUserEmail($scope.username);
现在,当我转到控制器中的另一个视图时,用户电子邮件就是我所期望的
console.debug("Current User email "+UserService.getCurrentUserEmail());
打印用户的电子邮件地址
但是当我用(ctrl+f5)刷新页面时。则当前用户电子邮件为空
Current User email null
我做错了什么,或者应该如何保存此电子邮件地址以供进一步使用?您收到打印的用户电子邮件,因为在打印之前,您调用了服务
UserService.saveCurrentUserEmail($scope.username)代码>
现在,当您刷新页面(ctrl+f5)时,不会调用此服务,因此会将其打印为null,因为它的初始化值为null
因此,当页面加载时,您需要调用saveCurrentUserEmail
。在页面刷新时,您需要调用服务器检查您是否登录并更新
$scope.username
并使用
UserService.saveCurrentUserEmail($scope.username);
或
您可以使用浏览器中的客户端存储或使用cookie来存储用户信息。$cookieStore要存储用户信息,请使用$cookieStore,而不是使用服务。
$cookieStore
电子邮件地址
例如是-”a@a.com“
谢谢,但用户电子邮件在此之后为空,我无法存储它。
//That's how i am assigning value
$cookieStore.put('emailAddress', $scope.user.emailAddress);
//thats how i am retrieving it
addr = $cookieStore.get('emailAddress');