我在$ http请求中启用了缓存,现在成功的回调仅在第一次运行。我想知道这是否是预期的,或者我需要了解缓存$ http的内容?
这就是我一直在尝试的:
$http.get('/foo/bar', { cache: true })
.success(function(data){
// does foo
})
.error(function(){
// uh oh
});
假设我已经处理了一次数据,但每次都要运行其他命令。所以,如果数据被缓存或已经可用,我不想重复自己,但是让我们说,如果我打开和关闭带有动画的元素,这应该在哪里?!
感谢您的期待!
答案 0 :(得分:2)
您可以使用$cacheFactory
对象。请参阅:http://docs.angularjs.org/api/ng.$cacheFactory
您可以像这样缓存$ http请求:
var $httpDefaultCache = $cacheFactory.get('$http');
如果要在缓存中检索特定网址,请执行以下操作:
var cachedData = $httpDefaultCache.get('http://myserver.com/foo/bar/123');
$您也可以清除缓存:
$httpDefaultCache.remove('http://myserver.com/foo/bar/123');
或:
$httpDefaultCache.removeAll();
答案 1 :(得分:1)
我很确定新的GET请求没有运行,因此不会调用相应的成功回调。