我有一个基本的博客文章的crud应用程序。上面的错误显示在控制台。在我删除后的文章。但文章被从数据库中删除。我搜索了类似的问题,但没有一个答案解决了这个问题。我使用JSONAPIAdapter的crud操作。
我检查了成员检查器中的标志,isDeleted的标志设置为true。仅供参考,* 成员数据 * 中显示的记录的数量是精确的。
deletePost:function(id){
var self = this;
this.get('store').find('post', id)
.then(post => post.destroyRecord())
.then(() => self.transitionToRoute('posts'));
}
我使用nodejs作为后端,mysql作为数据库。删除记录后,我发送如下响应:res.status(204).end();
Ember CLI版本2.6.3
图片中的以上细节是来自服务器的响应。
2条答案
按热度按时间kmbjn2e31#
我非常肯定这个问题是由ember数据的后台重新加载引起的。即使对api的find请求在delete请求之前触发,在您触发了删除请求之后,查找请求正在解析。要禁用后台重新加载并强制执行API调用,您可以将
{reload: true}
传递给findRecord()
调用。这将确保在触发删除请求之前解析查找请求。就像这样:
您可以在此处阅读有关
findRecord
的更多信息:http://emberjs.com/api/data/classes/DS.Store.html#method_findRecord在未来,我建议不要使用箭头函数的简写,因为它总是会返回,即使你不想返回值。
ryoqjall2#
我已经来过这里几次了,我找到了一个更好的解决方案here。他们推荐的方法是使用peekRecord而不是findRecord(假设商品已经在商店中),这将是同步的。下面的代码:
这对我很有效,而
{reload: true}
没有。