Eu encontrei este tópico procurando por algo semelhante, mas descobri que $ resource irá gerenciar o cache para você automaticamente, então não há necessidade de forçar a limpeza do cache.
A ideia é que se você tiver um recurso que possa consultar, essa resposta da consulta será armazenada em cache, mas se você salvar algo para esse mesmo recurso, os dados armazenados em cache anteriormente devem ser inválidos, portanto, são limpos para você. Faz sentido que funcione dessa maneira.
Aqui está um código que uso para fazer isso (você pode ignorar a parte possivelmente estranha da criação de fábrica e prestar atenção ao corpo da "classe").
'use strict';
sampleApp.players.$ng.factory('sampleApp.players.PlayerService', [
'$log',
'$resource',
sampleApp.players.PlayerService = function ($log, $resource) {
var service = {};
$log.info('Creating player resource.');
var Player = $resource('/api/players', {}, {query: {
isArray: true,
cache: true,
method: 'GET'
}});
service.addPlayer = function(playerName) {
$log.info('Saving a new player.');
return new Player({name: playerName}).$save();
};
service.listPlayers = function () {
$log.info('Fetching players.');
return Player.query();
};
return service;
}]);
Se você chamar a função listPlayers várias vezes, a primeira chamada fará uma solicitação http get e todas as chamadas subsequentes serão armazenadas em cache. Se você chamar addPlayer, uma postagem http será executada conforme o esperado e, em seguida, a próxima chamada para listPlayers executará um http get (não armazenado em cache).
Isso o mantém fora do negócio de gerenciar o cache de outra pessoa ($ http) e tentar acompanhar quais URLs estão sendo usados para solicitações e quais estão limpando caches nos momentos certos.
Suponho que a moral da história aqui é trabalhar com a biblioteca e tudo ficará bem ... exceto por quaisquer bugs ou recursos incompletos, mas o Angular não tem nenhum desses;)
ps Está tudo em execução no AngularJS 1.2.0.
cache
-{boolean|Cache}
- Se verdadeiro, um cache $ http padrão será usado para armazenar a solicitação GET, caso contrário, se uma instância de cache construída com