页面刷新消除了Angularjs $ scope变量

时间:2014-08-22 11:26:01

标签: angularjs session page-refresh

我是Angularjs的新手,我试图通过我的Angularjs应用程序实现Facebook登录。我成功地实现了它。 :)

我正在做的是,如果登录成功,我将变量logged设置为true。

//loading the file
$scope.logged = false;

Facebook.getLoginStatus(function(response) {
     if (response.status == 'connected') {
        $scope.logged = true;
        //do some stuff
     }
     else
       $scope.login();
     });

但我的问题是,如果用户刷新页面,$scope.logged变量将再次变为false,并要求用户重新登录。

我使用REST API(Rails)作为后端

如何使用Angular避免这种情况?

1 个答案:

答案 0 :(得分:1)

如下所示,在您的登录方法中将logged_in = true放入cookieStore中。

$cookieStore.put('logged_in',true);
$rootScope.logged_in = true;

并在您的控制器中,执行

$rootScope.logged_in = $cookieStore.get('logged_in');

现在,您可以在UI中的任何位置使用此logged_in变量来检查用户是否已登录。请确保在您的应用中使用“ngCookies”模块。并将$ cookieStore依赖项传递给您的控制器。您甚至可以将用户对象本身保持为与cookie中的logged_in变量类似,并从cookie中检索它。确保执行logged_in = false并清除cookie中的其他变量,并在注销方法中将其设置为空白。