【问题标题】:ExtJs Dynamic Store Failed call HandleExtJs 动态存储失败调用句柄
【发布时间】:2015-03-20 01:47:18
【问题描述】:

我有一家经典商店

Ext.define('xxx.store.Search', {
    extend: 'Ext.data.Store',
    model: 'xxx.model.Search',
    requires: ['xxx.data.xxxx'],
    proxy:
            {
                type: 'xxxxx',
                digSearchUrl: {
                    initRequest: 'ajax/xxx/xxx/xx',
                    pollRequest: 'ajax/xxxx/xxxx/xxxxxx'
                }
            },
    autoLoad: false,
    defaultSortDirection: 'DESC'
});

现在我通常会像这样进行商店加载:

   this.getStore('Search').load({
        digSearchCfg: {
            xxx: sid,
            xxx: xxxx
        }
    });

我知道我可以在这里使用标准方法: Attempting to load Ext store with JSON data from AJAX request returns error 但我宁愿在它自己的商店中定义错误处理程序。那可能吗?

【问题讨论】:

    标签: javascript ajax extjs store


    【解决方案1】:

    如果您想自己捕获和处理 Ajax 请求异常,只需向 Ajax 代理添加一个异常侦听器,如下所示:

    var store = Ext.create('Ext.data.JsonStore', {
            storeId: 'simpsonsStore',
            fields: ['name', 'email', 'phone'],
            autoLoad: true,
            proxy: {
                type: 'ajax',
                url: 'data2.json',
                reader: {
                    type: 'json',
                    rootProperty: 'characters'
                },
                listeners: {
                    exception: function(proxy, response, operation, eOpts ) {
                        console.log("EXCEPTION CAUGHT!");
                    }
                }
            },
            listeners: {
                load: function() {
                    console.log(this);
                }
            }
        });
    

    你可以看到一个演示小提琴here。 data1.json 将工作并将存储对象记录到控制台。 data2.json 将记录“异常捕获!”到控制台。

    这是Ajax proxy 的文档供参考。

    【讨论】:

      猜你喜欢
      • 2012-05-08
      • 2013-03-31
      • 1970-01-01
      • 1970-01-01
      • 2018-03-16
      • 1970-01-01
      • 1970-01-01
      • 2015-12-10
      • 1970-01-01
      相关资源
      最近更新 更多