如果我调用destroyRecord并且它在服务器上失败,它也会从本地存储和UI中消失。如果删除失败,我需要以某种方式“回滚”。我尝试过这样的事情。
item.destroyRecord().then(function () {
Notify.success("item removed");
}).catch(function (response) {
//NEED TO ROLLBACK HERE - ANY IDEAS?
Notify.error('Failed to remove!');
});
答案 0 :(得分:7)
首先,使用关系回滚在ember数据中并不完全有效,其次,较新版本的ember数据处理得更好(ember data 1.0 beta 7+)。记录为此目的有一个回滚方法,它仍然处于测试阶段,但它主要是你正在寻找的。 p>
item.destroyRecord().then(function () {
Notify.success("item removed");
}).catch(function (response) {
item.rollback();
Notify.error('Failed to remove!');
});
注意:在较新版本的Ember中,item.rollback()
不再起作用,而是使用Marcelo评论中提到的item.rollbackAttributes()
。