Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to make the Ember Local Storage Adapter (LSAdapter) work with the Ember REST Adapter?

I would like to take advantage of both the Ember Local Storage Adapter (LSAdapter) and the Ember REST Adapter (RESTAdapter), so that there is a centralized database for all the users while avoiding sending an Ajax request for each user action.

Specifically, I would like to:

  1. Populate the LSAdapter with data from the server.
  2. All changes users make are updated to the LSAdapter. (I know how to do this step)
    (In preparation for #3, I can have a model that saves a log in LSAdapter of all the updates)
  3. Once in n minutes, the LSAdapter update data are sent back to the server.

My backend server is NOT Rails, so please make the answers generic.

Is it possible to use BOTH LSAdapter and RESTAdapter in an Ember app? If so, please provide code sample of how to set it up.
I would also appreciate if you provide code sample for steps 1 and 3, basically, how a database can talk to the local storage and vice versa.


If it's not possible to have both LSADapter and RESTAdapter, what can I do to accomplish steps 1 and 3?

The only get around I can think of is to set up the Ember app store as a RESTAdapter, but then call Web Storage localstorage directly in my app, not calling it from LSAdapter at all. Let me know if there is an easier or built-in way.

like image 484
HaoQi Li Avatar asked Jun 13 '13 02:06

HaoQi Li


1 Answers

After reading Ember data's DS.Store comments, it looks like it might be possible to use 2 adapters at once:

  1. You can retrieve models from the store in several ways. To retrieve a record for a specific id, use DS.Model's find() method:

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

  2. If your application has multiple DS.Store instances (an unusual case), you can specify which store should be used:

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

I will update this answer if I try it out and get it working.


Update 1:

Check out the code in UPDATED for Additional question where both FixtureAdapter and RestAdapter are called.

like image 185
HaoQi Li Avatar answered Nov 15 '22 07:11

HaoQi Li