Javascript angularjs firebase登录范围值在刷新后不可用
我在Javascript angularjs firebase登录范围值在刷新后不可用,javascript,angularjs,angularjs-scope,firebase-realtime-database,firebase-authentication,Javascript,Angularjs,Angularjs Scope,Firebase Realtime Database,Firebase Authentication,我在$scope中有我的笔名,我尝试在用户登录后从其他视图访问它,使用: 但是,当我在用户成功登录后立即刷新页面时,$scope值会恢复为{{pseudonomy},并且参数不可用。如何在整个登录会话中持久保存此数据?能否请您提供一个示例来回答此问题? app.controller("MyregisterCtrl", ["$scope", "$stateParams", "Auth", "$state", "$location", "$modal", "DatabaseRef", "$root
$scope
中有我的笔名
,我尝试在用户登录后从其他视图访问它,使用:
但是,当我在用户成功登录后立即刷新页面时,
$scope
值会恢复为{{pseudonomy}
,并且参数不可用。如何在整个登录会话中持久保存此数据?能否请您提供一个示例来回答此问题?
app.controller("MyregisterCtrl", ["$scope", "$stateParams", "Auth", "$state", "$location", "$modal", "DatabaseRef", "$rootScope",
function ($scope, $stateParams, Auth, $state, $location, $modal, DatabaseRef, $rootScope) {
$scope.user = {};
$scope.signIn = function () {
if (!$scope.user.email && !$scope.user.password) {
toastr.error("Add email and password");
} else {
Auth.$signInWithEmailAndPassword($scope.user.email, $scope.user.password)
.then(function(firebaseUser) {
var userId = firebase.auth().currentUser.uid;
DatabaseRef.ref('/users/' + userId).once('value')
.then(function(snapshot) {
pseudonym = snapshot.val().pseudonym;
console.log("pseudonym: ", pseudonym);
$scope.pseudonym = pseudonym;
});
$state.go('app.dashboard');
if (!firebaseUser.emailVerified) {
// firebaseUser.sendEmailVerification();
toastr.info('Your email is NOT verified.', 'Verify email!');
$state.go('login.signin');
}
// $state.go('home');
})
.catch(function(error) {
toastr.error(error.message, error.reason, { timeOut: 10000 });
$scope.user = {};
})
}
};
您应该使用服务来存储值,并在需要时检索它
var myApp = angular.module('myApp',[]);
myApp.service('mySingleton', function() {
var username= "test";
return {
username : username
};
});
function MyCtrl($scope, mySingleton) {
$scope.username= mySingleton.username;
}
function MyCtrl2($scope, mySingleton) {
$scope.username= mySingleton.username;
}
您能告诉我登录控制器中的代码应该存储在服务中的哪一部分吗?我是否应该将其从登录控制器中完全删除并投入使用?或者两者都有?等等,让我展示一下,检查一下这个示例。这个示例有点难以与我的原始控制器联系起来。有可能给我的控制器一个合适的响应吗?你们所做的就在这里,如果有帮助的话,标记为答案