服务调用后删除缓存

时间:2015-12-15 12:39:12

标签: javascript angularjs caching

所以我有两种方法的服务。我正在使用$ resource的内置缓存支持。我想要实现的是当我从控制器进行一些服务调用以刷新缓存时。我正在尝试使用$ cacheResource的一些例子,但没有成功。以下是我的代码

服务

angular.module('module').factory('Service1',['$resource',
   function ($resource){
     return $resource('..api/latest/myservice', {}, {

       takeSomething: {
         method: 'GET',
         url: '..api/latest/myservice/takesomething',
        cache: true
       },

       putSomething: {
         method: 'GET',
         url: '..api/latest/myservice/putsomething',
         cache: true
       }

      }
}]

控制器

angular.module('module').factory('MyController',['$scope','Service1',
     function($scope, service1) {
       ....

     $scope.update = function() {
       service1.putSomething({
       ......
       refresh cache for takeSomething method in service or for all methods
     });
     }

}

因此,当我从控制器调用此函数更新时,我想为takeSomething方法或所有方法刷新缓存。

1 个答案:

答案 0 :(得分:0)

您可以使用$http获取默认$cacheFactory缓存;这将有一个remove方法来做你想要的。

您需要在$cacheFactory中的$scope.update注入var $httpDefaultCache = $cacheFactory.get('$http'); $httpDefaultCache.remove('..api/latest/myservice/takesomething'); ,或者将其移至您的服务中。

"$other": {
  ".validate": "false"
},