将数据保存在 DOM
Persisting data in the DOM
我在 Firebase 应用程序中工作,我需要在 DOM 中保留一些数据,一旦用户登录,您就可以看到用户名和电子邮件,但是一旦刷新页面,用户仍处于登录状态,但该数据从 DOM.
中消失
<div class="item">
{{::userDisplayInfo.name}}
</div>
<div class="item">
{{::userDisplayInfo.email}}
</div>
这里是 JS
$scope.signIn = function (user) {
auth.$authWithPassword({
email: user.email,
password: user.pwdForLogin
}).then(function (authData) {
ref.child("users").child(authData.uid).once('value', function (snapshot) {
var val = snapshot.val();
$scope.$apply(function () {
$rootScope.name = val;
$scope.userDisplayInfo.name = $rootScope.name.displayName;
$scope.userDisplayInfo.email = $rootScope.name.email;
});
console.log(user);
});
}).catch(function (error) {
console.log(error);
});
};
那么,我应该怎么做才能在 DOM 中保留用户和电子邮件?
大多数现代浏览器都支持 HTML5 本地存储。首先,检查浏览器是否支持它:
if(typeof(Storage) !== "undefined") {
// localStorage is OK to use
} else {
// no localStorage support
}
然后要设置您的数据,只需执行以下操作:
// Set
localStorage.setItem("user", userId);
// Get
var userId= localStorage.getItem("user");
记得在退出时清除该值,因为即使在浏览器关闭并重新打开后,localStorage 仍然存在。
暂时保持简单,使用 $cookies:
// $cookies injected somewhere above
$cookies.put('userEmail', $scope.userDisplayInfo.email');
然后验证用户是否登录:
// $cookies injected somewhere above
if ($cookies.get('userEmail')) {
// user is logged in
}
我在 Firebase 应用程序中工作,我需要在 DOM 中保留一些数据,一旦用户登录,您就可以看到用户名和电子邮件,但是一旦刷新页面,用户仍处于登录状态,但该数据从 DOM.
中消失 <div class="item">
{{::userDisplayInfo.name}}
</div>
<div class="item">
{{::userDisplayInfo.email}}
</div>
这里是 JS
$scope.signIn = function (user) {
auth.$authWithPassword({
email: user.email,
password: user.pwdForLogin
}).then(function (authData) {
ref.child("users").child(authData.uid).once('value', function (snapshot) {
var val = snapshot.val();
$scope.$apply(function () {
$rootScope.name = val;
$scope.userDisplayInfo.name = $rootScope.name.displayName;
$scope.userDisplayInfo.email = $rootScope.name.email;
});
console.log(user);
});
}).catch(function (error) {
console.log(error);
});
};
那么,我应该怎么做才能在 DOM 中保留用户和电子邮件?
大多数现代浏览器都支持 HTML5 本地存储。首先,检查浏览器是否支持它:
if(typeof(Storage) !== "undefined") {
// localStorage is OK to use
} else {
// no localStorage support
}
然后要设置您的数据,只需执行以下操作:
// Set
localStorage.setItem("user", userId);
// Get
var userId= localStorage.getItem("user");
记得在退出时清除该值,因为即使在浏览器关闭并重新打开后,localStorage 仍然存在。
暂时保持简单,使用 $cookies:
// $cookies injected somewhere above
$cookies.put('userEmail', $scope.userDisplayInfo.email');
然后验证用户是否登录:
// $cookies injected somewhere above
if ($cookies.get('userEmail')) {
// user is logged in
}