我有一个Ember-cli应用程序(v2.1),当我从博客模型中删除记录时,我遇到了Ember Data的问题。这是我要求删除的代码:
deleteBlog (blog) {
this.store.findRecord('blog', blog.get('id')).then(blog => {
blog.destroyRecord();
});
}
正如预期的那样,Ember Data发出了DELETE请求,它与我的express.js后端服务完美配合。
唯一问题是该记录未从Ember数据存储中删除,我收到以下错误消息:
错误:在状态root.deleted.inFlight中尝试在my-app @ model上处理事件pushedData
:blog :: ember529:56455037f9cf29a325ae72b9
我感谢任何反馈!
答案 0 :(得分:5)
问题在于尝试使用我已经拥有的模型实例来选择模型。将其改为简单:
deleteBlog (blog) {
blog.destroyRecord();
}
摆脱了错误!再次感谢@torazaboro帮助我仔细看看这个错误。
答案 1 :(得分:0)
试试这个:
deleteBlog (blog) {
this.store.findRecord('blog', blog.get('id')).then(function(blog) {
blog.deleteRecord(); // => remove blog from the store
blog.save(); // => DELETE request
});
}
但是这应该和blog.destroyRecord();
一样,所以它可能不起作用。
可能发生的情况是,如果您在飞行中向服务器发出请求并删除了模型,那么您将获得Attempted to handle event
得动on model while in state root.deleted.uncommitted
例外。