ember.js - Correct usage of store.loadMany() function -
i'm trying figure out how populate table json object. my json structurated object:
{ id: 0, list: [{ username:'user_1',online:true, user:0 }, { username:'user_2',online:true, user:0 }] } my model defined follow:
mytalk.wuser = ds.model.extend({ list: ds.hasmany('mytalk.user') }); mytalk.user = ds.model.extend({ username: ds.attr('string'), // primary key online: ds.attr('boolean'), user: ds.belongsto('mytalk.wuser') }); i using custom adapter ember-data:
ds.socketadapter = ds.restadapter.extend(mytalk.websocketconnection, { // code not relevant } ds.socketadapter.map('mytalk.wuser', { list: {embedded: 'always'} }); ds.socketadapter.map('mytalk.user', { primarykey: 'username' }); mytalk.store = ds.store.extend({ revision: 12, adapter: ds.socketadapter.create({}) }); now load data. run in chrome command line the following statements:
var store = ds.get('defaultstore'); var obj = { id: 0, list: [{ username:'user_1',online:true, user:0 }, { username:'user_2',online:true, user:0 }] }; var store.loadmany(mytalk.wuser,obj); var record = mytalk.wuser.find(0); record.serialize(); but returns no record:
> object {list: array[0]} thanks in advance!!
if want allow adapter deserialize embedded records (or perform custom deserialization, matter), you'll need load data through adapter rather directly store.
var store = ds.get('defaultstore'), obj = { id: 0, list: [{ username:'user_1', online:true, user:0 }, { username:'user_2', online:true, user:0 }] }, type = mytalk.wuser, adapter = store.adapterfortype(type); adapter.load(store, type, obj);
Comments
Post a Comment