JS: Как я могу разбить на страницы, когда у меня есть данные в моей функции обратного вызова () - PullRequest
0 голосов
/ 31 марта 2019

Я могу получать данные из API, и по отдельности я могу разбить на страницы тестовые данные, используя js.
Но я не могу объединить их вместе, чтобы получить результат разбивки на страницы из функции callback ().

#Not my code, but I have tested it, works nicely.
var current_page = 1;
var records_per_page = 2;

var objJson = [
{ adName: "AdName 1"},
{ adName: "AdName 2"},

];
function prevPage(){
   if (current_page > 1) {
       current_page--;
       changePage(current_page);
   }
}

function nextPage(){
   if (current_page < numPages()) {
       current_page++;
       changePage(current_page);
   }
}

function changePage(page){
  var btn_next = document.getElementById("btn_next");
  var btn_prev = document.getElementById("btn_prev");
  var listing_table = document.getElementById("listingTable");
  var page_span = document.getElementById("page");


  if (page < 1) page = 1;
  if (page > numPages()) page = numPages();

  listing_table.innerHTML = "";

  for (var i = (page-1) * records_per_page; i < (page *records_per_page); i++) {
      listing_table.innerHTML += objJson[i].adName + "<br>";
  }
  page_span.innerHTML = page;

  if (page == 1) {
    btn_prev.style.visibility = "hidden";
  } else {
    btn_prev.style.visibility = "visible";
  }

if (page == numPages()) {
    btn_next.style.visibility = "hidden";
} else {
    btn_next.style.visibility = "visible";
}
  }

 function numPages()
{
  return Math.ceil(objJson.length / records_per_page);
 }

 window.onload = function() {
   changePage(1);
 };

Ниже приведена функция обратного вызова (), которая получает данные из API:

 var glo_var;
 function callback(data){
     glo_var = data;
 }

 function codeAddress(address) {
   geocoder.geocode({ 'address': address}, 
      function(response, status) {
      if(status == 'OK'){
         var senddata = $.get('/myurl',{params}, function (data){ callback(data) });
       }
   });
 }

Теперь у меня возникла проблема с их объединением.Все, что я могу сделать, это сохранить данные в glo_var, а затем использовать их в changePage() точно так же, как var objJson используется там в блоке кода выше.По-видимому, моя функция обратного вызова () будет тогда сведена к функции, используемой для хранения данных JSON.Это правильный подход?
PS - я знаю, что мог бы использовать плагин JQuery для пагинации, я просто пытаюсь выучить js, я очень беден в этом.

РЕДАКТИРОВАТЬ: HUURRRAAAHHH Я сделал это !!Я поместил changePage () в callback () и использовал вложенные функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...