ember.js - Sideloads data correctly (using custom adapter) - JSBIN inside -


(jsbin) (jsbin output) so, have following model , load data:

app.list = ds.model.extend({   name: ds.attr('string') });  app.user = ds.model.extend({   username: ds.attr('string'),   users: ds.belongsto('app.list') // line correct? });  app.list.reopen({     users: ds.hasmany('app.user') }); 

i have own custom adapter configuration:

ds.socketadapter.configure('app.user',     {sideloadas: 'users'} ); 

i boostrap model following payload:

{      "list" : {"id" : 1, "name" : "nome", "users" : [1,2] },      "users": [                 { "id":1, "username": "user1", "users": 1 },                 { "id":2, "username": "user2", "users": 1 }              ]  }  

from console type:

obj = ' { "list" : {"id" : 1, "name" : "nome", "users" : [1,2] }, "users": [{ "id":1, "username": "user1", "users": 1 },{ "id":2, "username":"user2", "users" : 1}] } '; obj = json.parse(obj); ds.get('defaultstore').load( app.list, obj);  var l_len = app.list.find().get('length'); var u_len = app.user.find().get('length'); console.log( ">>>>>>>  "+ l_len + "record(s) " +u_len + "record(s)"); 

but seems no data loaded. testing model console. using ember-data revision 12. wrong in code?

ps socketadapter extends restadapter. should boostrap data inside custom adapter? if yes, don't know put code (if inside findmany, findall redefinition). help!

(jsbin) (jsbin output)

reading tip, unable perform loading of json. think it's incorrect.

so solved in way, using workaround: jsbin output

var obj = {      "lists" : [                  { "id": 1, "name" : "listone", "user_ids" : [1,2] },                  { "id": 2, "name" : "listtwo", "user_ids" : [3,4] }               ],     "users": [                      { "id": 1, "username": "user1", "list": 1 },                      { "id": 2, "username": "user2", "list": 1 },                      { "id": 3, "username": "user3", "list": 2 },                      { "id": 4, "username": "user4", "list": 2 }              ]  };  var store = ds.get("defaultstore"); store.load(app.list, obj);  var adapter = store.adapterfortype(app.list); adapter.didfindmany(store, app.list, obj); 

if loading single record, can use didfindrecord instead of didfindmany. hope things change in next revision.


Comments

Popular posts from this blog

linux - xterm copying to CLIPBOARD using copy-selection causes automatic updating of CLIPBOARD upon mouse selection -

c++ - qgraphicsview horizontal scrolling always has a vertical delta -