【问题标题】:Angularjs cookies - How to use them across controllersAngularjs cookie - 如何跨控制器使用它们
【发布时间】:2013-02-09 04:57:30
【问题描述】:

似乎没有任何关于 AngularJS 使用 cookie 的非常明确的文档,所以我对此有点迷茫。

我有两个控制器,一个创建一个 cookie 并存储一个用户 ID,然后我想稍后在另一个控制器运行时检索该 ID。我想我已经成功地创建了 cookie 并为 id 存储了一个值,但是我似乎无法从第二个控制器的 cookie 中取回 id。当我尝试读取 id 时,我的控制台中出现错误:

TypeError: 'undefined' is not an object

PS:我在 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
    };
}

【问题讨论】:

  • 你能用localStorage吗?

标签: cookies angularjs cookiestore


【解决方案1】:

采纳了 Greg 的建议,转而使用本地存储。

对于其他遇到问题并正在寻找合适方法的人,我使用了: https://github.com/grevory/angular-local-storage

当本地存储不可用时,它会优雅地降级为 cookie

此处提供演示:http://gregpike.net/demos/angular-local-storage/demo.html

【讨论】:

    猜你喜欢
    • 2012-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-14
    • 2010-11-04
    • 1970-01-01
    相关资源
    最近更新 更多