Angularjs 如何在控制器外使用cookies?
我在登录控制器中设置了cookies。每当我试图从控制器外部获取cookies的值时,它就会抛出一个错误。请看看我遗漏了什么 控制器收到成功响应后,我正在设置cookiesAngularjs 如何在控制器外使用cookies?,angularjs,cookies,Angularjs,Cookies,我在登录控制器中设置了cookies。每当我试图从控制器外部获取cookies的值时,它就会抛出一个错误。请看看我遗漏了什么 控制器收到成功响应后,我正在设置cookies app.controller('AngularLoginController', ['$scope','$http','$cookies','$rootScope', function($scope, $http, $cookies,$rootScope) { $scope.loginForm = funct
app.controller('AngularLoginController', ['$scope','$http','$cookies','$rootScope', function($scope, $http,
$cookies,$rootScope) {
$scope.loginForm = function() {
$http.post("login.php", {
'email' :$scope.inputData.email,
'password':$scope.inputData.password
}).success(function(data) {
console.log(data);
if ( data != 'wrong') {
var loggedIn = $cookies.get('loggedIn');
// Putting cookies
$cookies['myCookieArray']= {'loggedIn':true,'username':data};
getmycookiesback = $cookies['myCookieArray'];
window.location.href = '#/userlist';
$rootScope.display = true;
$rootScope.username = getmycookiesback.username;
}
else {
$scope.errorMsg = "Invalid Email and Password";
}
})
}
}]);
在我登录后,它调用AngularLoginController并在成功响应后设置Cookies值
外部控制器如果我比较Cookie的值,它抛出的错误getmycookiesback未定义
var onlyLoggedIn = function ($location,$q,$cookies,$rootScope) {
var deferred = $q.defer();
var url = $location.absUrl();
if (getmycookiesback.loggedIn === "undefined") { // Error on This line
deferred.reject();
window.location.href = '#/login';
}
else{
deferred.resolve();
$rootScope.display = true;
$rootScope.username = getmycookiesback.username;
window.location.href = url;
alert(getmycookiesback.username);
//$cookies.remove('loggedIn');
return true;
}
return deferred.promise;
};
为什么它是未定义的,如果我在控制器中定义了它。
有没有其他方法可以在控制器之外获取cookies的值?当然,它是未定义的;它似乎是该函数作用域中的局部变量 您可能希望查看Angular Services,了解您希望全局访问的内容-您可能希望在服务上实现一个函数来实现这一点,或者在服务中本地存储该信息,并提供访问该信息的函数-请查看