代码之家  ›  专栏  ›  技术社区  ›  Black

Kendo-重命名“skip”和“take”参数

  •  0
  • Black  · 技术社区  · 6 年前

    我试图在现有的应用程序中使用KEDODUI。 应用程序从分页数据库结果的请求中读取参数“limit”和“offset”。 剑道 dataSource 但是,对象传递这些名为“take”和“skip”的参数

    有没有办法告诉Kendo使用自定义键发送这些值,以便它可以遵循与我的应用程序其余部分相同的约定?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Joe Glover    6 年前

    本机不支持此功能,但您可以自己轻松实现此功能:

    function parameterMapPaging(data) {
        if (data.hasOwnProperty('take')) {
            data.limit = data.take;
            delete data.take;
        }
        if (data.hasOwnProperty('skip')) {
            data.offset = data.skip;
            delete data.skip;
        }
        return data;
    }
    

    从数据源调用这个 parameterMap 功能:

    var myData = new kendo.data.DataSource({
        transport: {
            read: {
                url: "/myEndpoint",
                type: "GET",
                contentType: "application/json; charset=UTF-8"
            },
            parameterMap: function (data) {
                return JSON.stringify(parameterMapPaging(data));
            }
        },
        serverPaging: true // enable serverPaging so take and skip are sent as request parameters
    }
    

    kendo文档的链接包含一个更简单的实现,但实际上解决方案是在 parameterMap 在发送之前运行。这就是该职能的明确目的:

    将请求参数转换为适合远程服务的格式的函数

    作为旁白,你也可以找到 parse 用于在使用响应之前重塑响应的函数。