如果代理遇到异常,ExtJS 4.0将取消存储加载

Ext JS 4.0 cancel store load if proxy encounters exception

本文关键字:取消 存储 加载 ExtJS 代理 遇到 异常 如果      更新时间:2023-09-26

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

我正在使用Ajax代理。代理上有一个"异常"事件,但我不知道在回调中该做什么。

现在,存储区试图将数据填充到模型中(使用我定义的映射),即使没有数据,这也会导致难看的红色错误消息。

更新

也许最好不要停止load()过程,而是处理实际将JSON转换为模型实例的东西(读取器?)中丢失的数据。其思想是优雅地处理丢失的数据。我该怎么做?

这有点棘手,尤其是当您的存储绑定到数据查看器组件时。

一旦到达exception事件,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的不同而有所不同,但概念应该是相同的。