当与商店关联的代理遇到异常(例如 404)时,我可以以某种方式停止 .load() 进程吗?
我正在使用 Ajax 代理。有一个'exception' event on the proxy ,但我不知道在回调中到底要做什么。
现在,即使没有数据,商店也会尝试将数据填充到模型中(使用我定义的映射),这会导致丑陋的红色错误消息。
更新
也许最好不要停止 load() 过程,而是处理实际将 JSON 转换为模型实例的事物(读取器?)中丢失的数据。这个想法是优雅地处理丢失的数据。我该怎么做?
最佳答案
这有点棘手,尤其是当您的商店与数据查看器组件绑定(bind)时。
一旦到达异常
事件,load()
进程就会停止,所以我相信你无法控制那里。
在处理 Ajax 的 exception
事件时,您可以使用 store.add()
手动将数据填充到存储中,
ajax.on('exception', function () {
// since exception was called, i'll have to input data myself.
store.add({
field1: 'value1',
field2: 'value2'
});
});
我的代码基于 ExtJS 3 语法,可能与 ExtJS 4 有所不同,但概念应该是相同的。
关于javascript - 如果代理遇到异常,Ext JS 4.0 取消存储加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8883943/