我有一种情况需要从商店中删除商品,我使用的是remove(record)方法,我的目标是只在服务器删除商品后从商店中删除商品并返回成功消息。该商店使用ajax代理对服务器进行DELETE调用,并使用自动加载和自动同步。当调用remove(record)时,它首先从存储中删除记录,然后继续对服务器进行DELETE调用。
我发现这种行为有点奇怪,因为我似乎必须根据服务器的响应手动将模型重新插入到商店中。使情况更复杂的原因是“异常”事件由代理而不是商店处理。此外,代理与存储无关,因此捕获服务器在代理中的响应生成的异常事件,不允许我执行商店中的rejectChanges等操作。
显然我的实现逻辑出了问题,所以我需要了解的是如何在服务器响应之后根据服务器的响应更改存储,或者如果不可能如何在之前将存储恢复到之前的状态操作
答案 0 :(得分:2)
我使用代理的“异常”事件。例如:
store.getProxy().on({
exception: function() {
store.rejectChanges();
}
})
此外,它还可以添加到您的商店:
initComponent: function() {
this.callParent(arguments);
this.getProxy().on({
exception: function(proxy, response, operation) {
this.rejectChanges();
}
});
}