У меня есть код для разбивки на страницы, который использует kaminari gem
:
<div class="card-footer" id="paginator">
<nav aria-label="Page Navigation">
<%= paginate @contacts, remote: true%>
</nav>
</div>
В основном это создаст ff html:
<nav>
<ul class="pagination">
<li class="page-item">
<a class="page-link" data-remote="true" href="/dashboard/contacts">« First</a>
</li>
<li class="page-item">
<a rel="prev" class="page-link" data-remote="true" href="/dashboard/contacts?page=3">‹ Prev</a>
</li>
<li class="page-item">
<a class="page-link" data-remote="true" href="/dashboard/contacts">1</a>
</li>
<li class="page-item">
<a class="page-link" data-remote="true" href="/dashboard/contacts?page=2">2</a>
</li>
<li class="page-item">
<a rel="prev" class="page-link" data-remote="true" href="/dashboard/contacts?page=3">3</a>
</li>
<li class="page-item active">
<a data-remote="true" class="page-link">4</a>
</li>
</ul>
</nav>
Я использую ajax поэтому, чтобы сделать страницу URL, такую как http://localhost:3000/dashboard/contacts?page=2
, мне нужно создать pushState, чтобы выбрать это, поэтому в моем файле application.js
я добавил ff:
$(document).on('click', '.pagination a[data-remote=true]', function(){
history.pushState({}, '', $(this).attr('href'));
});
Когда я нажимаю на Я ожидал, что URL-адрес будет отображаться в строке URL-адреса соответствующим образом, но не изменился, пока он все еще изменяет содержимое.
Heads on my index.js.erb
:
$('#contacts').html('<%= j(render @contact) %>');
$('#paginator').html('<%= j(paginate(@contacts, remote: true)) %>');
Есть идеи, почему это не работает и почему URL-адрес не отображается в строке URL?