Можно ли как-то вынести создание разметки для кнопок пагинации в отдельный метод?
Можно ли как-то вынести создание разметки для кнопок пагинации в отдельный метод?
_generateMarkup() {
const curPage = this._data.page;
const numPages = Math.ceil(
this._data.results.length / this._data.resultsPerPage
);
console.log(curPage, numPages);
//1.first page, there are other pages
if (curPage === 1 && numPages > 1) {
return `
<button data-goto='${
curPage + 1
}' class="btn--inline pagination__btn--next">
<svg class="search__icon">
<use href="${icons}#icon-arrow-right"></use>
</svg>
<span>Page ${curPage + 1}</span>
</button>
`;
}
//2.last page,theres are other pages
if (curPage === numPages && numPages > 1) {
return `
<button data-goto='${
curPage - 1
}' class="btn--inline pagination__btn--prev">
<svg class="search__icon">
<use href="${icons}#icon-arrow-left"></use>
</svg>
<span>Page ${curPage - 1}</span>
</button>
`;
}
//3.other pages between first page and last page
if (curPage < numPages) {
return `
<button data-goto='${
curPage - 1
}' class="btn--inline pagination__btn--prev">
<svg class="search__icon">
<use href="${icons}#icon-arrow-left"></use>
</svg>
<span>Page ${curPage - 1}</span>
</button>
<button data-goto='${
curPage + 1
}' class="btn--inline pagination__btn--next">
<svg class="search__icon">
<use href="${icons}#icon-arrow-right"></use>
</svg>
<span>Page ${curPage + 1}</span>
</button>
`;
}
//4.only one page and there are no other pages
return '';
}
Источник: Stack Overflow на русском