删除型号时出现Ember Data错误

时间:2015-11-13 17:04:56

标签: ember.js ember-data ember-cli

我有一个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

我感谢任何反馈!

2 个答案:

答案 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例外。