首页 > 解决方案 > 如何将响应中的页码设置为数字,而不是 PaginationJS 中的数组

问题描述

我使用 分页js

如何使 paginationjs 使用页面数量,而不是数组?

从服务器我收到下一个数据:

content: (2) [{…}, {…}]
number: 2
numberOfElements: 2
size: 2
sort: {unsorted: false, sorted: true, empty: false}
totalElements: 38
totalPages: 19

我的分页配置:

$('#abc').pagination({
  pageSize: 10,
  pageNumber: 2,
  dataSource: 'http://localhost:9090/admin/api/modelType/page?pageNumber=2&pageSize=2',
  locator: 'totalPages',
  totalNumberLocator: (data) => data.totalPages,
}

我无法将数据从数字更改为响应正文中的数组。有没有其他方法可以在不提供硬编码值或数组的情况下使其工作?

此外,我试图找到页面数量, locator: 'totalPages'但原因是它说 totalPages 不是数组。

谢谢

这是查询:

在此处输入图像描述

解析后的接收对象:

在此处输入图像描述

错误“定位器不是数组”:

分页:dataSource.totalPages 必须是一个数组

编辑 如果我删除定位器我得到另一个错误说Pagination: "locator" is incorrect.

分页:

标签: javascriptpagination

解决方案


您从服务器收到如下响应:

{
  content: [{…}, {…}]
  number: 2
  numberOfElements: 2
  size: 2
  sort: {unsorted: false, sorted: true, empty: false}
  totalElements: 38
  totalPages: 19
}

... 正确的?

然后你想将'totalElements'传递给分页配置,对吧?!?...如果那是您喜欢的,那么我认为根据文档(请参阅“异步和动态总数”)可以解决如下:

$('#abc').pagination({
  pageSize: 10,
  dataSource: '/admin/api/modelType/page?pageNumber=2&pageSize=2',

//how can i set totalNumber from a responce data, not a hardcoded value?
  totalNumberLocator: function(response) { 
    return response.totalElements;
  },
}

编辑

好的,您需要在totalNumberLocator中传递 totalElements 的数量而不是 totalPages 的数量。并删除定位器:'totalPages'。请参阅上面的代码,我已经纠正了这一点。


推荐阅读