Wie funktioniert der Ember Local Storage Adapter (LSAdapter) mit dem Ember REST Adapter?

8

Ich möchte sowohl den Ember Local Storage-Adapter (LSAdapter) als auch den Ember-REST-Adapter (RESTAdapter) nutzen, so dass eine zentrale Datenbank für alle Benutzer vorhanden ist und gleichzeitig keine Ajax-Anfrage für jede Benutzeraktion gesendet werden muss.

Insbesondere möchte ich:

  1. Füllen Sie den LSAdapter mit Daten vom Server.
  2. Alle Änderungen, die Benutzer vornehmen, werden auf den LSAdapter aktualisiert. (Ich weiß, wie man diesen Schritt macht)
     (In Vorbereitung auf # 3 kann ich ein Modell haben, das ein LSAdapter aller Updates speichert)
  3. Einmal in n Minuten werden die LSAdapter-Update-Daten zurück an den Server gesendet.

Mein Backend-Server ist NICHT Rails, also machen Sie bitte die Antworten generisch.

Ist es möglich, BOTH LSAdapter und RESTAdapter in einer Ember App zu verwenden? Wenn ja, geben Sie bitte einen Codebeispiel für die Einrichtung an.
Ich würde auch schätzen, wenn Sie Codebeispiel für die Schritte 1 und 3 grundsätzlich bereitstellen, wie eine Datenbank mit dem lokalen Speicher und umgekehrt kommunizieren kann.

Wenn es nicht möglich ist, sowohl LSADapter als auch RESTAdapter zu haben, was kann ich tun, um die Schritte 1 und 3 zu erreichen?

Der einzige Weg, den ich mir vorstellen kann, ist, den Ember-App-Store als RESTAdapter einzurichten, aber rufen Sie dann Web Storage auf localstorage direkt in meiner App, ohne es von LSAdapter aus aufzurufen. Lassen Sie mich wissen, ob es einen einfacheren oder eingebauten Weg gibt.

    
HaoQi Li 13.06.2013, 02:13
quelle

2 Antworten

2

Nach dem Lesen der DS.Store-Kommentare von Ember-Daten sieht es so aus, als wäre es möglich, 2 Adapter gleichzeitig :

  1. Sie können Modelle aus dem Speicher auf verschiedene Arten abrufen. Um einen Datensatz abzurufen Für eine bestimmte ID verwenden Sie DS.Model s find() method:

    var person = App.Person.find(123);

  2. Wenn Ihre Anwendung mehrere DS.Store Instanzen hat (ein ungewöhnlicher Fall), können Sie Geben Sie an, welcher Speicher verwendet werden soll:

    var person = store.find(App.Person, 123);

Ich werde diese Antwort aktualisieren, wenn ich es ausprobiere und es funktioniert.

Update 1:

Sehen Sie sich den Code in UPDATED für die zusätzliche Frage an, in dem FixtureAdapter und enthalten sind RestAdapter werden aufgerufen.

    
HaoQi Li 03.07.2013 03:05
quelle
0
%Vor%     
user10078 03.09.2013 05:21
quelle

Tags und Links