所以我有两种方法的服务。我正在使用$ 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方法或所有方法刷新缓存。
答案 0 :(得分:0)
您可以使用$http
获取默认$cacheFactory
缓存;这将有一个remove
方法来做你想要的。
您需要在$cacheFactory
中的$scope.update
注入var $httpDefaultCache = $cacheFactory.get('$http');
$httpDefaultCache.remove('..api/latest/myservice/takesomething');
,或者将其移至您的服务中。
"$other": {
".validate": "false"
},