我试图采取$ http请求的响应并将其保存到自定义缓存中。然后,我想使用该缓存在视图中显示数据。我认为在获取新数据之前会在每个请求中自动检查缓存,但这似乎不适合我。角度响应对象和存储数据
我遇到的问题是,我似乎无法保存数据。以下功能需要提出2个请求:文章和图片。
getImages: function() {
var cache = $cacheFactory('articlesCache');
$http.get(posts)
.then(function (data) {
var articles = data;
angular.forEach(articles, function (article) {
var imageId = {id: article.image_id};
$http.post(images, imageId)
.then(function (response) {
article.image = response;
cache.put(article.url, article);
});
});
});
return cache;
}
这会创建自定义缓存,但返回的对象中没有数据。我现在知道,我无法以这种方式保存数据,但我不知道为什么或如何去做。
任何人都可以解释存储响应数据的工作原理吗?在哪里,如果有的话,是否使用承诺进来?
感谢您的反馈意见。在应用程序中,我使用的是自定义的cacheFactory,正如您所概述的那样,但为了简洁和清晰起见,已在上面的代码段中进行了更改。我如何通过$ q服务来运行这个? – Proto
当然我会更新答案。 –