Angularjs cookies - как их использовать на контроллерах

Похоже, что в AngularJS нет действительно четкой документации по использованию файлов cookie, поэтому я немного растерялся с этим.

У меня есть два контроллера, один создает cookie и хранит идентификатор пользователя, а затем я хочу получить этот идентификатор позже, когда работает другой контроллер. Я думаю, что я успешно создал cookie и сохранил значение для id, однако я не могу вернуть идентификатор из cookie во втором контроллере. Я получаю сообщение об ошибке в своей консоли, когда пытаюсь прочитать идентификатор:

TypeError: 'undefined' is not an object

PS: я работаю в Xcode, так как это в приложении ios для iPhone.

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
    };
}

1 ответ

Решение

Прислушался к совету Грега и вместо этого отправился в местное хранилище.

Для всех, у кого возникли проблемы и которые ищут подходящий подход, я использовал: https://github.com/grevory/angular-local-storage

Изящно деградирует в куки, когда локальное хранилище недоступно

Демоверсия доступна здесь: http://gregpike.net/demos/angular-local-storage/demo.html

Другие вопросы по тегам