我正在学习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: '/'
});
}]);
答案 0 :(得分:1)
刷新页面时,$ rootScope.loggedIn不再存在。您需要检查cookie的存在,而不是依赖于内存变量。
我无法在没有所有依赖项的情况下使用codepen,但基本上你的解析函数看起来应该是这样的:
resolve: {
"check": function($location, $rootScope) {
var cookie = $cookies.get('userName');
console.log(cookie)
if (!cookie) {
$location.path('/')
}
}