/ / Wie kann ich Winkelcache in Verbindung mit dem AngularJS LocalStorageModule verwenden - Winkeljs, Winkelcache, Winkel-Lokalspeicher

Wie kann ich angular-cache in Verbindung mit dem AngularJS LocalStorageModule - Angularjs, Angular-Cache, Angular-Local-Speicher - verwenden

Ich habe eine Anwendung, die beim Start eine Liste der Admin-Benutzer erhält. Die Daten sehen ungefähr so ​​aus:

var users =
[
{"id":"527ddbd5-14d3-4fb9-a7ae-374e66f635d4","name":"x"},
{"id":"966171f8-4ea1-4008-b6ac-d70c4eee797b","name":"y"},
{"id":"de4e89fe-e1de-4751-9605-d6e1ec698f49","name":"z"}
]

Ich habe einen Anruf, der diese Daten erhält:

 os.getUserProfiles($scope);

und die Funktion:

 getUserProfiles: function ($scope) {

$http.get("/api/UserProfile/GetSelect")
.success(function (data, status, headers, config) {
$scope.option.userProfiles = data;
});
},

Ich möchte vermeiden, dass die Admin-Benutzer ständig Anfragen stellen müssen die Benutzerliste. Ich habe mir die $ cacheFactory in Angular angeschaut, was aber nicht wirklich der Fall ist scheinen meine Bedürfnisse zu erfüllen.

Der Winkelcache auf github sieht interessant aus, aber ich bin nicht ganz sicher, wie ich ihn benutzen soll mit solchen Objekten und lassen Sie dann die Daten mit dem LocalStorageModule speichern.

Kann mir jemand ein Beispiel geben, wie er dieses Produkt mit dem LocalStorageModule verwendet hat.

Antworten:

2 für die Antwort № 1

Ich würde vorschlagen, das erweiterte zu überprüfen Winkelcache.

Wie in der Dokumentation beschrieben: http://jmdobry.github.io/angular-cache/guide.html#using-angular-cache-with-localStorage

app.service("myService", function ($angularCacheFactory) {

// This cache will sync itself with localStorage if it exists, otherwise it won"t. Every time the
// browser loads this app, this cache will attempt to initialize itself with any data it had
// already saved to localStorage (or sessionStorage if you used that).
var myAwesomeCache = $angularCacheFactory("myAwesomeCache", {
maxAge: 900000, // Items added to this cache expire after 15 minutes.
cacheFlushInterval: 3600000, // This cache will clear itself every hour.
deleteOnExpire: "aggressive", // Items will be deleted from this cache right when they expire.
storageMode: "localStorage" // This cache will sync itself with `localStorage`.
});
});

Oder wir können benutzerdefinierte lokale Speicherimplementierungen einfügen

storageImpl: localStoragePolyfill // angular-cache will use this polyfill instead of looking for localStorage

Ich benutze dieses Plugin https://github.com/grevory/angular-local-storage, das sehr einfach zu bedienen ist und gleichzeitig eine vollständige API bietet.

Überprüfen Sie auch eine lokale Speichernutzung zum Zwischenspeichern der Vorlagen: Wie kann man winkelsjs Partials zwischenspeichern?

HINWEIS: Dieser Artikel Starten Sie den $ http-Dienst von Angular mit Zwischenspeicherungund meistens der Abschnitt:
Erweitertes Cachingwar für mich der grund zu wechseln Winkelcache

So erstellen Sie eine benutzerdefinierte Polyfill (Adaptermuster)

Wie dokumentiert Hier, müssen wir die localStoragePolyfill Implementierung dieser Schnittstelle:

interface Storage {
readonly attribute unsigned long length;
DOMString? key(unsigned long index);
getter DOMString getItem(DOMString key);
setter creator void setItem(DOMString key, DOMString value);
deleter void removeItem(DOMString key);
void clear();
};

angle-cache kümmert sich nur um diese drei Methoden:

  • setItem
  • getItem
  • Gegenstand entfernen

I.e .: Implementieren Sie einen Wrapper, der mit der lokalen Speicher-API spricht, und wandelt sie in die erweiterte Cache-API um. Das ist es. Sonst nichts