问题描述
if (user.username && user.password) { loginService.loginUser(user).then(function(response) { $cookies.put('token', response.token) $rootScope.token = response.token $cookies.put('username', response.username) }}
token直接放在$rootScope也可以达到存储的目的,所以$cookies有啥用?
问题解答
回答1:个人理解$rootScope其实只是存储在内存中,如果页面刷新的情况下,$rootScope内的内容便会清空。而cookies不会有此类问题,但是cookie的存储容量有些限制
回答2:这个涉及到持久化存储和暂时性($rootScope)存储的区别。此外HTML5规范中还定义了localStorage和sessionStorage。另外如果使用上面的存储方案,会涉及对象的序列化和反序列化。而使用$rootScope的方式,不涉及上述的内容。最后有兴趣的化,请查阅一下不同存储的方式的优缺点。如果有做webapp,可以进一不了解低内存下localStorage 下存在的问题。总结一下,根据数据是否需要持久化选择存储方式。