似乎没有任何关于AngularJS使用cookie的明确文档,所以我对此有点困惑。
我有两个控制器,一个创建cookie并存储用户ID,然后我想在另一个控制器运行时检索该ID。我想我已经成功地创建了cookie并存储了id的值,但是我似乎无法从第二个控制器中的cookie中取回id。当我尝试读取id:时,我的控制台中出现了错误
TypeError: 'undefined' is not an object
附言:我正在Xcode中工作,因为这是在iPhone的ios应用程序中。
function firstCtrl($scope, $cookieStore) {
$scope.connectToFacebook = function() {
FB.api('/me', function(response, data, status, headers, config) {
var fbid=response.id;
$cookieStore.put('id', fbid);
console.log($cookieStore.get('id')); //This correctly displays the users FB id
});
}
}
function secondCtrl($scope, $cookieStore) {
$scope.submit = function() {
console.log($cookieStore.get('id')); // This is currently displaying: TypeError: 'undefined' is not an object
};
}
采纳了Greg的建议,转而使用本地存储。
对于其他有问题并正在寻找合适方法的人,我使用了:https://github.com/grevory/angular-local-storage
当本地存储不可用时,它会优雅地降级为cookie
此处提供演示:http://gregpike.net/demos/angular-local-storage/demo.html