由于某种原因,我的store.sync()
命令有时不会触发任何服务器请求。
我不确定为什么会这样。调用sync()
时始终会修改记录。我也试过调试和sync命令简单地省略(跳过)没有任何错误。此外,从不调用store.sync上的故障回调。
我对如何调试此问题缺乏想法。你能帮忙吗?
console.debug(record.dirty); //TRUE
console.debug(record.isValid()); //TRUE
store.sync({
scope:this,
callback : function(batch, options) {
console.debug("ok"); //never reached
},
failure : function(batch, options) {
console.debug("failed"); //never reached
}
});
};
修改
我也试过调试beforesync
事件但是即使触发snync
也不会调用事件处理程序。
修改
snyc
console.debug(record.getChanges());
输出已更改的字段,再次表明记录已被修改。
答案 0 :(得分:1)
可能最简单的调试方法如下:
在控制台类型
中 store = "get reference to the store here";
store.sync = Ext.Function.createInterceptor(store.sync,function(){debugger}, store); // all in one line
现在让商店变脏并启动同步。代码执行在执行store.sync
之前停止,因此您可以从控制台调用类似的内容:
this.getModifiedRecords();
this.getNewRecords();
this.getRemovedRecords();
或者您可以检查当时存储的this
变量。