AngularJs Cookie无效

时间:2016-05-17 16:36:09

标签: angularjs cookies

我正在学习Angular JS并且遇到了cookie问题。我有一个简单的登录工作正常,但当我登录后刷新它带我回到登录页面。我想设置cookie然后保持登录状态。

app.js

    @RunWith(SpringJUnit4ClassRunner.class)
    @ContextConfiguration(locations ={ "testconfig.xml" })

loginController.js

var myApp = angular.module('myApp', ['ngRoute', 'ngResource', 'ngCookies']);

myApp.config(['$routeProvider', function($routeProvider){
  $routeProvider.
  when('/', {
    templateUrl: 'views/home.html',
    controller: 'loginController'
}).
when('/admin', {
    resolve: {
        "check": function($location, $rootScope){
            if(!$rootScope.loggedIn){
                $location.path('/')
            }
        }
    },
    templateUrl: 'views/admin.html',
    controller: 'loginController'
}).
otherwise({
    redirectTo: '/'
});
}]);

1 个答案:

答案 0 :(得分:1)

刷新页面时,$ rootScope.loggedIn不再存在。您需要检查cookie的存在,而不是依赖于内存变量。

我无法在没有所有依赖项的情况下使用codepen,但基本上你的解析函数看起来应该是这样的:

resolve: {
      "check": function($location, $rootScope) {
        var cookie = $cookies.get('userName');
        console.log(cookie)
        if (!cookie) {
          $location.path('/')
        }
      }