Encontré este hilo en busca de algo similar, pero descubrí que $ resource administrará el caché automáticamente, por lo que no es necesario forzar el borrado del caché.
La idea es que si tiene un recurso que puede consultar, esa respuesta de consulta se almacenará en caché, pero si guarda algo para ese mismo recurso, los datos almacenados en caché previamente deben ser inválidos, por lo que se borrará para usted. Tiene sentido que funcione de esta manera.
Aquí hay un código que utilizo para hacer esto (puede ignorar la parte de creación de fábrica posiblemente de aspecto extraño y prestar atención al cuerpo de la "clase").
'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;
}]);
Si llama a la función listPlayers varias veces, la primera llamada realiza una solicitud http get y todas las llamadas posteriores se almacenan en caché. Sin embargo, si llama a addPlayer, se realiza una publicación http como se esperaba, y luego la siguiente llamada a listPlayers realizará una obtención http (no almacenada en caché).
Esto lo mantiene fuera del negocio de administrar el caché de otra persona ($ http) y tratar de mantenerse al día con las URL que se utilizan para las solicitudes y las que se borran de los cachés en el momento adecuado.
Supongo que la moraleja de la historia aquí es trabajar con la biblioteca y todo estará bien ... excepto por errores o características incompletas, pero Angular no tiene ninguno de esos;)
ps Todo esto se ejecuta en AngularJS 1.2.0.
cache
-{boolean|Cache}
- Si es verdadero, se usará una caché $ http predeterminada para almacenar en caché la solicitud GET; de lo contrario, si se creó una instancia de caché con