GridManager 调整数据格式

作者: 前端沐先生 | 来源:发表于2018-01-05 15:06 被阅读210次

GridManager在处理数据时,需要使用规定的数据格式。而在实际场景中,或多或少存在一些格式差异,在这里将对这些差异的处理方式进行说明。

1. 仅返回字段名不符

如: 一级数据中的 data 与 totals, 可以使用 dataKey 和 totalsKey 进行调整。

后端返回数据为:

{
    "list":[  // GridManager 期望返回的是 data, 而这里返回了 list
        {
            "name": "baukh",
            "age": "28",
            "createDate": "2015-03-12",
            "info": "野生前端程序",
            "operation": "修改"
        },
        {
            "name": "baukh",
            "age": "28",
            "createDate": "2015-03-12",
            "info": "野生前端程序",
            "operation": "修改"
        }
    ],
    "number": 8  // GridManager 期望返回的是 totals, 而这里返回了 number
}

解决方式:

document.querySelector('table').GM('init', {
    supportAjaxPage: true, // 启用分页
    dataKey: 'list', // 指定数组 key 为 list
    totalsKey: 'number', // 指定总数 key 为 number
    requestHandler: function(request){
        request.newParams = '这个参数是通过 requestHandler 函数新增的';
    },
    // 其它配置项...
});
2. 后端返回数据与 前端期望返回的数据出入较大

如数组中的 createDate, 期望返回的是时间戳, 而返回的为字符串。 这时可以通过初始化配置 responseHandler 对数据进行重组。

后端返回数据为:

{
    "list":[  // GridManager 期望返回的是 data, 而这里返回了 list
        {
            "name": "baukh",
            "age": "28",
            "createDate": "2015-03-12", // 返回的是字符串
            "info": "野生前端程序",
            "operation": "修改"
        },
        {
            "name": "baukh",
            "age": "28",
            "createDate": "2015-03-12", // 返回的是字符串
            "info": "野生前端程序",
            "operation": "修改"
        }
    ],
    "number": 8  // GridManager 期望返回的是 totals, 而这里返回了 number
}

前端期望返回的是:

{
    "data":[
        {
            "name": "baukh",
            "age": "28",
            "createDate": 1426118400000,  // 期望返回时间戳
            "info": "野生前端程序",
            "operation": "修改"
        },
        {
            "name": "baukh",
            "age": "28",
            "createDate": 1426118400000, // 期望返回时间戳
            "info": "野生前端程序",
            "operation": "修改"
        }
    ],
    "totals": 8
}

解决方式:

document.querySelector('table').GM('init', {
    supportAjaxPage: true, // 启用分页
    dataKey: 'list', // 指定数组 key 为 list
    totalsKey: 'number', // 指定总数 key 为 number
    responseHandler: function(response){
        // 将返回数据中的 createDate 修改为 时间戳
        response.list = response.data.map(function(item){
            item.createDate = new Date(item.createDate).getTime();
            return item;
        });
    },
    // 其它配置项...
});
作者:@拭目以待表格管理开源项目GridManager

Want to know How To Make Love?I know HTML!

相关文章

  • GridManager 调整数据格式

    GridManager在处理数据时,需要使用规定的数据格式。而在实际场景中,或多或少存在一些格式差异,在这里将对这...

  • Angular框架内使用GridManager

    @拭目以待:首发于Angular框架内使用GridManager GridManager- github地址是原生...

  • React框架内使用GridManager

    @拭目以待:首发于Angular框架内使用GridManager GridManager- github地址是原生...

  • 今天坚持了三年的Github开源项目star过百了

    GridManager历程 GridManager启动于2015年02月10日, 不曾想这一坚持已经1200多天了...

  • GridManager 用户偏好记忆

    GridManager 会将用户的部分操作进行记忆,从而达到用户行为记忆的效果。 为什么在GridManager中...

  • Vue框架内使用GridManager

    GridManager对Vue很友好,发布了针对于Vue的npm包。 相关地址 gridmanager-vue g...

  • GridManager 用户偏好记忆

    GridManager 会将用户的部分操作进行记忆,从而达到用户行为记忆的效果。 为什么在GridManager中...

  • GridManager 实现搜索

    搜索功能在GridManager中的实现方式很简单。首先需要确认当前的GridManager已经渲染成功, 如何渲...

  • GridManager 导出

    GridManager 具有表格数据导出功能,该功能为纯前端实现,对后端无依赖。 1.初始化时指定启用导出功能。方...

  • GridManager 隐藏列

    GridManager 表格管理组件, 对列的隐藏与显示的操作有两种方式。 1.初始化时指定列为隐藏或显示状态。方...

网友评论

    本文标题:GridManager 调整数据格式

    本文链接:https://www.haomeiwen.com/subject/fqhsnxtx.html