Estoy tratando de crear una forma de mostrar la cantidad de elementos para cada página, por ejemplo:
Página 1: 1-5 elementos de 327
Página 2: 6-10 elementos de 327
....
Ahora tengo la oportunidad de ir a la página siguiente, página anterior, última página, primera página y también la posibilidad de elegir el número de elementos para cada página (por ejemplo, 5, 10, 20) (this.elementsForPage)
He intentado crear de esta manera:
if(action === "next"){ this.firstElement += parameters.length this.lastElement += parameters.length } if(action === "previous"){ this.firstElement -= parameters.length this.lastElement -= parameters.length } if(action === "last"){ this.firstElement = this.totalElements - this.parameters.length this.lastElement = this.totalElements } if(action === "first"){ this.firstElement = 1; this.lastElement = parameters.length }esto funciona si hago siguiente, anterior y primero. Pero no funciona si voy a la última página.
Es por eso que si voy a la última página y solo tiene 2 resultados, por ejemplo, tendré
primerElemento = 327 - 2 = 325
últimoElemento = 327
Pero si sigo en "anterior" cuenta:
primerElemento = 325 - 5 = 320
últimoElemento = 327 - 5 = 322
y está mal porque muestra 5 resultados, no 2.
En tu opinión, ¿cómo puedo solucionar estos problemas?
Esta función
function getCurrentPageItems(currentPage,perPage,total) { currentPage = currentPage - 1; let elStart = currentPage*perPage +1; let elEnd = elStart+perPage - 1; elEnd = Math.min(Math.max(elEnd, 1), total); console.log(`Page ${(currentPage+1)}: ${elStart}-${elEnd} of ${total}`); return [elEnd,elEnd]; } getCurrentPageItems(1,5,327); getCurrentPageItems(2,5,327); getCurrentPageItems(65,5,327); getCurrentPageItems(66,5,327); console.log(327/5);