使用最新版本的 ember-js 和 ember-data,我在删除记录时遇到问题。
我的路线:
App.ListContactsRoute = Em.Route.extend({
model: function() {
App.Contact.find();
},
setupController: function(controller, model) {
controller.set('contacts', model);
}
});
App.EditContactRoute = Em.Route.extend({
setupController: function(controller, model) {
this.transaction = controller.get('store').transaction();
this.transaction.add(model);
controller.set('content', model);
controller.set('organizations', App.Organization.find());
},
events: {
delete: function(contact) {
contact.deleteRecord();
this.transaction.commit();
this.transaction = null;
this.transitionTo("listContacts");
},
save: function(contact) {
this.transaction.commit();
this.transaction = null;
this.transitionTo("editContact", contact);
}
}
});
删除联系人时,我会返回到列表联系人路线,因此对 API 进行了调用,该 API 返回了联系人列表。此时,已删除的联系人尚未在服务器上删除。
结果,已删除的联系人仍然存在于我的联系人列表模板中。这是错误:
"Uncaught Error: Attempted to handle event `loadedData` on <App.Contact:ember469:null> while in state rootState.deleted.inFlight. Called with undefined"
我做错了什么或者有办法解决这个问题吗?
该记录不再是该记录的一部分this.transaction
,一旦您提交事务,记录就会移至商店默认事务。为了反映您的删除操作,您需要提交存储。
contact.deleteRecord()
App.store.commit();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)