Ich denke, es gibt jetzt einen noch einfacheren Weg. Dies ermöglicht das grundlegende Caching für alle $ http-Anforderungen (die $ resource erbt):
var app = angular.module('myApp',[])
.config(['$httpProvider', function ($httpProvider) {
// enable http caching
$httpProvider.defaults.cache = true;
}])
gspatel
quelle
quelle
Antworten:
Eine einfachere Möglichkeit, dies in der aktuellen stabilen Version (1.0.6) zu tun, erfordert viel weniger Code.
Fügen Sie nach dem Einrichten Ihres Moduls eine Fabrik hinzu:
Jetzt können Sie dies an Ihren Controller übergeben:
Ein Nachteil ist, dass die Schlüsselnamen auch automatisch eingerichtet werden, was das Löschen schwierig machen kann. Hoffentlich fügen sie etwas hinzu, um Schlüsselnamen zu erhalten.
quelle
Schauen Sie sich den Winkel-Cache der Bibliothek an, wenn Sie das integrierte Caching von $ http mögen, aber mehr Kontrolle wünschen. Sie können es verwenden, um den $ http-Cache nahtlos mit einer regelmäßigen Lebensdauer der Lebensdauer und der Option zu erweitern, den Cache für localStorage beizubehalten, damit er sitzungsübergreifend verfügbar ist.
FWIW bietet außerdem Tools und Muster, mit denen Sie Ihren Cache zu einem dynamischeren Datenspeicher machen können, mit dem Sie als POJOs interagieren können, und nicht nur mit den Standard-JSON-Zeichenfolgen. Ich kann das Dienstprogramm dieser Option noch nicht kommentieren.
(Dann Hinzu kommt, dass, im Zusammenhang Bibliothek Winkeldaten sind eine Art Ersatz für $ Ressourcen- und / oder Restangular, und hängen von Winkel-cache) .
quelle
angular-data
jetzt veraltet ist. Der neueste Stand istjs-data-angular
js-data.io/v1.8.0/docs/js-data-angularDa AngularJS-Fabriken Singletons sind , können Sie das Ergebnis der http-Anforderung einfach speichern und abrufen, wenn Ihr Dienst das nächste Mal in etwas injiziert wird.
quelle
Setzen Sie den Cache auf true.
quelle
In Angular 8 können wir Folgendes tun:
Sie können es so nennen:
Der obige Code speichert das Ergebnis der Remote-API beim ersten Aufruf im Cache, damit es bei weiteren Anforderungen an diese Methode verwendet werden kann.
quelle