ОК - это что-то вроде хака, но это работает.
Следующий URL-адрес является рабочим примером:
Требуется помощь от какого-то старого, родного JavaScript-кода в файле index.html. Во-первых, мне нужно было иметь возможность прочитать скрытое поле, содержащее количество записей, поступающих из JSON. Затем следовало установить все UL, чтобы они не отображали ни одного - setTimeout должен убедиться, что файл JSON был загружен
<script type="text/javascript">
var mTO = setTimeout(function () {
for (var x = 31; x <= $(".numRows").val() - 1; x++) {
if (typeof (document.getElementById('sp_' + x)) === 'undefined') {
} else {
document.getElementById('sp_' + x).style.display = 'none'
}
}
}, 1000);
mTO;
</script>
Затем следует вызов вычисленного пользователем созданного метода, чтобы установить this.mVar для количества элементов / записей / свойств - любого имени, которое вы хотите использовать для него - чтобы Vue знал, сколько элементов, чтобы мы могли разделить по количеству страниц для разбивки на страницы
computed: {
mFunc: function () {
this.mVar = Object.keys(this.items).length
return Object.keys(this.items).length
}
}
Это еще одна часть вышеупомянутого взлома - в зависимости от того, какая страница нажата в разделе нумерации страниц, она определяет, что скрывать и что показывать
setPage: function (page) {
this.page = page
// console.log(page)
for (var y = 0; y <= this.mVar - 1; y++) {
if (typeof (document.getElementById('sp_' + y)) === 'undefined') {
} else {
document.getElementById('sp_' + y).style.display = 'none'
}
}
for (var x = (30 * (this.page - 1)); x <= 30 * (this.page); x++) {
if (typeof (document.getElementById('sp_' + x)) === 'undefined' || (document.getElementById('sp_' + x)) == null) {
break
} else {
document.getElementById('sp_' + x).style.display = 'block'
}
}
}
В случае, если вам интересно, для чего "30", это количество UL, которое я хотел показать на странице.
Последняя часть хака находится в разделе шаблона
<pagination :records="mFunc" :per-page="30" @paginate="setPage"></pagination>
<span style="display: none;"><input type="hidden" class="numRows" :value="this.mVar" /></span>
Если вы хотите использовать все, то вы можете найти его на моем github:
Github-репо для vuejs-example