Angularjs $cookies.putObject在angular 1.4中不工作
我从最近的angular 1.2(原始代码)升级到1.3(破坏了cookies)到今天的1.4($cookieStore现在因$cookies而被弃用) 我添加了一行Angularjs $cookies.putObject在angular 1.4中不工作,angularjs,angular-cookies,Angularjs,Angular Cookies,我从最近的angular 1.2(原始代码)升级到1.3(破坏了cookies)到今天的1.4($cookieStore现在因$cookies而被弃用) 我添加了一行$cookies.putObject('user',user)但它没有保存到cookies(我在chrome资源选项卡中验证) 我在chrome控制台中尝试$cookies.getObject('user')时,在$cookies.getObject('user')之后放置了一个断点,并且得到了未定义的 这是一个问题,因为现在每当我
$cookies.putObject('user',user)代码>但它没有保存到cookies(我在chrome资源选项卡中验证)
我在chrome控制台中尝试$cookies.getObject('user')
时,在$cookies.getObject('user')
之后放置了一个断点,并且得到了未定义的
这是一个问题,因为现在每当我刷新页面时,我都会丢失已登录的用户。Auth.js
服务的前端有这样一行:
// Get currentUser from cookie
$rootScope.currentUser = $cookies.getObject('user') || null;
我注意到angular在控制台上放了一个警告…我没注意到。我的对象超出了cookie大小限制4093。我的是4207
因此,我所做的是将userId
保存到cookie中……这允许我对登录用户进行所有检查,并更新代码以从服务器获取登录用户对象
我最初将用户对象放在localStorage
中,但这成了一场管理噩梦——每当用户被更新时(这可能发生在应用程序的多个地方)。。。我必须刷新localStorage
相反,我在每次页面刷新时都这样做:
// Get currentUser from cookie
$rootScope.currentUser = $cookies.get('userId');
User.get().$promise
.then(function(user){
$rootScope.currentUser = user._id && user || null;
});
可能是个愚蠢的问题,但您已经验证了Session.save正确地传回了用户,而不是未定义的传回了用户?函数(user){$rootScope.currentUser=user;$cookies.putObject('user',user);//不保存返回cb();}yup。我肯定有一个用户对象。但我想我解决了我的问题…我发现我的对象太大,无法放入cookie中。这是用户服务模块:)
// Get currentUser from cookie
$rootScope.currentUser = $cookies.get('userId');
User.get().$promise
.then(function(user){
$rootScope.currentUser = user._id && user || null;
});