Monday, 15 March 2010

ember.js - Deleting hasMany record and saving with ember-data -



ember.js - Deleting hasMany record and saving with ember-data -

i have jsbin setup issue:

http://emberjs.jsbin.com/sovub/3/edit

from example, in situations when seek delete subtitle , save, error:

attempted handle event `pusheddata` on <app.subtitle:ember563:7> while in state root.deleted.uncommitted.

if delete lastly subtitle save, it's fine. deleting first subtitle, or deleting , adding new records saving gives me error message.

is because i'm manually setting ids each subtitle during extractsingle, so:

extractsingle: function(store, type, payload, id){ var list = payload.list var nid = 6 // subtitles var subs = list.subtitles list.subtitles = [] subs.foreach(function(item){ item.id = nid++ list.subtitles.push(item.id) item.list = list.id }) // same links payload = { list: list, subtitle: subs, link: li} homecoming this._super(store, type, payload, id) },

i've noticed subtitles attribute of payload in extractsingle doesn't contain right model whenever error thrown. instead, contains id of subtitle record.

// id: "532", subtitles: array[2] 0: class __ember1403240151252: "ember562" __ember1403240151252_meta: object // rest of info 1: class __ember1403240151252: "ember563" __ember1403240151252_meta: object __nextsuper: undefined // rest of info // when error thrown id: "532", subtitles: array[1] 0: 6 length: 1 __proto__: array[0]

i'm not sure how should approach this, allow lone resolve it. help appreciated.

i did more research , found out ds.rootstate ( http://emberjs.com/api/data/classes/ds.rootstate.html) related state root.deleted.uncommitted error getting.

to solve it, did dematerialize record after deleting it:

var model = this.get('model') model.deleterecord() this.store.dematerializerecord(model)

this removed records indexes (and relationships?) deleted.

ember.js ember-data

No comments:

Post a Comment