Je suis tombé sur ce thread à la recherche de quelque chose de similaire, mais a constaté que $ressource de gérer le cache automatiquement pour vous, il n'ya donc pas besoin de forcer le cache est effacé.
L'idée est que si vous disposez d'une ressource que vous pouvez faire une requête, que la réponse à la requête va être mis en cache, mais si vous enregistrez quelque chose pour que la même ressource, précédemment mis en cache les données doivent être invalide, il est nettoyé pour vous. Il est logique que cela fonctionnerait de cette façon.
Voici un code que j'utilise pour ce faire (vous pouvez ignorer la peut-être bizarre usine de création et de prêter attention à la "classe" du corps).
'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 vous appelez la listPlayers de fonction à plusieurs reprises, le premier appel fait une demande http get et tous les appels suivants sont mis en cache. Si vous appelez addPlayer cependant, un http post est effectuée comme prévu, et puis le prochain appel à listPlayers va effectuer un http get (pas de mise en cache).
Cela vous maintient de l'activité de gestion de quelqu'un d'autre ($http) cache et en essayant de garder en place avec l'url qui ont été utilisés pour les demandes et qui sont à la compensation des caches au bon moment.
Je suppose que la morale de l'histoire ici est de travailler avec la bibliothèque et tout ira bien... sauf pour les bugs ou incomplète de fonctionnalités, mais Angulaire de ne pas avoir l'un de ceux-ci ;)
p.s. Tout ceci est en cours d'exécution sur AngularJS 1.2.0.