Как извлечь тело ответа из Angularjs CacheFactory

Я новичок в Angularjs и пытаюсь узнать о кеш-факторе. У меня возникли проблемы с чтением данных ответов с использованием кэш-памяти. На данный момент я просто пытаюсь распечатать его на консоли сразу после вызова остальных API. Мой контроллер JavaScript:

(function() {
    "use strict";
    angular
        .module("productManagement")
        .controller("WelcomeCtrl",
            [ '$scope',
                '$http',
                '$timeout',
                "$interval",
                "$cacheFactory",
                WelcomeCtrl ])

    function WelcomeCtrl($scope, $http, $timeout, $interval, $cacheFactory) {
    var onUserComplete = function(response) {

            $scope.fname = response.data.firstName;

            console.log("response.firstName:"+response.data.firstName);

            var $httpDefaultCache = $cacheFactory.get('$http');

            var cachedData = $httpDefaultCache.get('./webapi/details');
            console.log("cachedData print:"+cachedData);

        var onError = function(reason) {
            $scope.error = "Could not fetch the data";
        };

        // GET The values from Rest API
        $http({
            method: 'GET',
            url: './webapi/details',
            cache: true 
        })
        .then(onUserComplete, onError);        

    }
}());

Выход из веб-сервиса есть. Я вижу вывод в сети, а также могу распечатать его на консоли:

{"id":"1234","firstName":"NoName","lastName":"Newbie"}

При печати кэшированных данных на консоли он печатает код состояния http вместе с несколькими объектами:

*cachedData in add training:200,{"id":"1234","firstName":"NoName","lastName":"Newbie"},[object Object],OK*

Я не могу извлечь ответ JSON из вышеперечисленного. Я пробовал ниже, но ни один из них не работает:

//console.log("cachedData.data print:"+cachedData.data);
//console.log("cachedData.data.id print:"+cachedData.data.id);
//console.log("cachedResponse print:"+cachedData.response.id);

Я также попытался дать полный URL-адрес в $httpDefaultCache.get, но он все еще не работает.

Есть ли какое-то решение этого? Я не скопировал весь код, чтобы он был коротким. Заранее спасибо!

1 ответ

Я нашел похожий вопрос здесь. Вы изучали это также? Как кэшировать http get сервис в angularjs

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