首页 > 解决方案 > Ag-Grid - 服务器端行模型 params.failCallback

问题描述

我们使用企业服务器端行模型从服务器获取数据。我们已经实现了 IServerSideDatasource,如果服务器出错,我们会按照建议调用 params.failCallback。

但是,网格上什么也没有发生。加载微调器仍然可见,并且没有任何错误通知用户。

'onRowDataChanged' 事件触发,但它没有关于事件状态的信息。

有没有推荐的方法来通知用户失败?理想情况下,我想通过 ag-grid 事件来处理这个问题,而不是从 IServerSideDatasource 甚至是 http 客户端抛出我自己的错误。

这可能吗?

标签: javascriptag-grid

解决方案


我正在使用自定义 eventListener 来捕获 failCallback 调用,它工作得很好

在我的主要课程中:

onGridReady = params => {
    this.gridApi = params.api;
    this.gridApi.addEventListener('failCallback', this.onServerFailCallback);
    this.gridApi.setServerSideDatasource(MyRemoteDataSource);
 };

onServerFailCallback = params => {
    console.error('onServerFailCallback', params); 
 }

在 MyRemoteDatasource 中:

class MyRemoteDatasource{
    getRows(params) {
        fetchData(params).then(
        response => {     
            params.successCallback(response.data);
        }, 
        error => {    
           params.failCallback();
           params.parentNode.gridApi.dispatchEvent({
               type: 'failCallback',
               api: params.parentNode.gridApi,
               columnApi: params.parentNode.columnApi,
               error: error
           });
        });
    }
}

输出:

onServerFailCallback, {type: "failCallback", api: GridApi, columnApi: ColumnApi, error: Error: Error inside fetchData() at stack trace...}


推荐阅读