Je pense qu'il y a un moyen encore plus facile maintenant. Cela permet la mise en cache de base pour toutes les requêtes $ http (dont $ resource hérite):
var app = angular.module('myApp',[])
.config(['$httpProvider', function ($httpProvider) {
// enable http caching
$httpProvider.defaults.cache = true;
}])
gspatel
la source
la source
Réponses:
Un moyen plus simple de le faire dans la version stable actuelle (1.0.6) nécessite beaucoup moins de code.
Après avoir configuré votre module, ajoutez une usine:
Vous pouvez maintenant transmettre ceci à votre contrôleur:
Un inconvénient est que les noms des clés sont également configurés automatiquement, ce qui pourrait rendre leur effacement difficile. J'espère qu'ils ajouteront d'une manière ou d'une autre des noms clés.
la source
Consultez le cache angulaire de la bibliothèque si vous aimez la mise en cache intégrée de $ http mais souhaitez plus de contrôle. Vous pouvez l'utiliser pour augmenter de manière transparente le cache $ http avec des purges périodiques de durée de vie et la possibilité de conserver le cache sur localStorage afin qu'il soit disponible sur toutes les sessions.
FWIW, il fournit également des outils et des modèles pour transformer votre cache en une sorte de magasin de données plus dynamique avec laquelle vous pouvez interagir en tant que POJO, plutôt que simplement les chaînes JSON par défaut. Je ne peux pas encore commenter l'utilité de cette option.
(Ensuite, en plus de cela, les données angulaires de bibliothèque associées remplacent en quelque sorte $ resource et / ou Restangular, et dépendent de angular-cache.)
la source
angular-data
c'est obsolète maintenant. Le dernier en date estjs-data-angular
js-data.io/v1.8.0/docs/js-data-angularComme les usines AngularJS sont des singletons , vous pouvez simplement stocker le résultat de la requête http et le récupérer la prochaine fois que votre service est injecté dans quelque chose.
la source
définissez le cache sur true.
la source
Dans Angular 8, nous pouvons faire comme ceci:
Vous pouvez l'appeler comme ceci:
Le code ci-dessus mettra en cache le résultat de l'API distante au premier appel afin qu'il puisse être utilisé sur d'autres demandes à cette méthode.
la source