我试图在将此用户对象发送到我的服务时将一组用户凭据存储在cookie中 -
this.SetCookie = function (user) {
$cookies.user = user;
}
然而,当我尝试检索此cookie时,我得到的是一个对象,但只是一个字符串,表示" [Object Object]"
我可以将所有用户凭据分别存储在自己的cookie中,因为我知道我可以做到这一点,但看起来效率很低?这有一个简单的解决方案吗?我发现这个问题的最高结果与JQuery有关,但对我来说没有用。
答案 0 :(得分:39)
在Angular 1.4中,我发现通过创建cookie来存储JSON对象:
var obj = {
currentUser: {
username: "testUN",
authdata: authdata
}
};
$cookies.putObject('cookieName', obj);

允许您像这样获取cookie:
var cookieWObject = $cookies.getObject('cookieName');

然后得到这样的值:
var username = cookieWObject.currentUser.username;
var authdata = cookieWObject.currentUser.authdata;

答案 1 :(得分:11)
您正在直接打印对象,它始终显示[Object Object]
,因为它包含JSON
的对象,而在打印它时,它使用.toString()
方法在控制台中显示它。
您需要将JSON.stringify(user)
设置为将所有JSON
对象转换为字符串。使用该对象时,您需要使用JSON.parse(user)
将对象转换为JSON
答案 2 :(得分:2)
在angular中使用cookies必须在控制器中注入依赖项'ngCookies'或在angular.module('app',[ngCookies])中声明,不要使用$ cookieStore。
var app = angular.module('myApp',['ngCookies']);
app.controller('cookiesController',['$scope','$cookies',function($scope,$cookies){
//using put method you can add value using key value
$cookies.put('Kye','Admin');
//access cookies value
console.log($cookies.get('Key'));
//You can add also object in Cookies
var data = {
'name':'admin',
'pass':'admin'
}
$cookies.putObject('data',data);
//access object value
console.log($cookies.getObject('data'));
}]);
答案 3 :(得分:1)
JSON.stringify(user); //for storing in cookies
JSON.parse($cookies.user); //for converting into an object