angularjs从特定请求清除缓存

时间:2015-12-06 13:32:05

标签: angularjs caching

默认情况下,我正在进行的所有http请求都会被缓存。现在,如何清除特定请求的缓存?

这是一个更好解释的情况。我有一个REST API,它根据身份验证发送两种不同的数据。每当用户进行身份验证时,我都需要清除旧数据并通过身份验证发出新请求。我的控制器被刷新,但由于调用已被缓存,因此未进行API调用。它返回旧数据。

2 个答案:

答案 0 :(得分:0)

您可以使用Angular的内置$cacheFactory

来设置自定义缓存对象

E.g

// cache the HTTP response
$http.get('myurl',{
    cache: true
}

// this object can now be retrieved using $cacheFactory 
var httpCache = $cacheFactory('$http'); 

// to remove the value from the cache, get the default $http cache, call the remove function and pass in the url 
var httpCache = $cacheFactory.get('$http');  
httpCache.remove('myurl');  

答案 1 :(得分:0)

告诉我们的$ http请求通过我们自己的自定义缓存发出请求很简单。我们可以传递缓存的实例,而不是通过请求传递布尔值true。

    var myCache = $cacheFactory.get('myCache');
$http({
  method: 'GET',
  url: '/api/users.json',
  cache: myCache
});
// Or, using the .get helper
$http.get('/api/users.json', {
  cache: myCache
});

现在,$ http将使用我们的自定义缓存而不是使用默认缓存。