首页 > 解决方案 > 如何处理 Extjs 存储异常?

问题描述

我正在使用 Extjs 6.5.3 经典工具包。我正在为网格存储。我想处理存储加载异常。我该如何处理?

我的店铺是这样的:

Ext.define('RUI.store.ProjectListStore', {
    extend: 'Ext.data.Store',
    sortOnLoad: false,
    pageSize:RUIRamboConstants.DEFAULT_PAGE_SIZE,
      proxy : {
        type : 'ajax',
        actionMethods: {
            read: 'POST'
        },
        url:    'api.do',
        reader: {
            rootProperty: 'List',
            type: 'json',
            isURLConvert : true,
            totalProperty: 'TotalRecords',

        }
    }

});  

我从服务器收到以下响应:

{
  "limit": 10,
  "page": 1,
  "start": 0,
  "TotalRecords": 2,
  "userFilterId": 0,
  "List": [
    {
      "id": 1,
      "name" : "abc"
    },
    {
      "id": 1926722,
     "name" : "xyz"
    }
  ]
}

失败时:

{
  "returnCode": 1,
  "messageKey": null,
  "detailedMessage": null,
  "exception": null,
  "browser": "Mozilla 5.0 (Windows)",
  "customParams": null,
  "errorMessages": [
    {
      "messageKey": "duplicate",
      "detailedMessage": "Duplicate."
    }
  ],
  "success": false
}

我想抓住这个失败,并希望将消息显示为“重复”。

请帮忙!!

先感谢您。

标签: extjs

解决方案


您可以监听商店的加载事件,然后检查响应是否成功,如下所示:

listeners: {
    load: function(store, records, success) {
        if (!success) {
            Ext.Msg.show({
                title: 'Error',
                message: recs[0].data.errorMessages[0].detailedMessage
            })
        }

    }
}

工作小提琴


推荐阅读