Я могу получать данные из 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 () и использовал вложенные функции.