Как извлечь тело ответа из 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