如果代理遇到异常,则Ext JS 4.0取消存储加载

时间:2012-01-16 17:36:16

标签: javascript ajax model-view-controller extjs

当与商店关联的代理遇到异常(例如404)时,我能否以某种方式停止.load()进程?

我正在使用Ajax代理。有一个'exception' event on the proxy,但我无法弄清楚回调中究竟要做什么。

现在,商店尝试将数据填充到模型中(使用我定义的映射),即使没有数据,也会导致丑陋的红色错误消息。

更新

也许最好不要停止load()进程,而是处理实际将JSON转换为模型实例的thing(reader?)中的缺失数据。我们的想法是优雅地处理丢失的数据。我该怎么做?

1 个答案:

答案 0 :(得分:0)

这有点棘手,特别是如果您的商店与数据查看器组件绑定。

load()进程一旦到达exception事件就会暂停,所以我相信你无法控制它。

在处理Ajax的store.add()事件时,您可以使用exception手动将数据填充到商店中,

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而异,但概念应该相同。

相关问题