Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript angularjs firebase登录范围值在刷新后不可用_Javascript_Angularjs_Angularjs Scope_Firebase Realtime Database_Firebase Authentication - Fatal编程技术网

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;
}

您能告诉我登录控制器中的代码应该存储在服务中的哪一部分吗?我是否应该将其从登录控制器中完全删除并投入使用?或者两者都有?等等,让我展示一下,检查一下这个示例。这个示例有点难以与我的原始控制器联系起来。有可能给我的控制器一个合适的响应吗?你们所做的就在这里,如果有帮助的话,标记为答案