Kaminari和AJAX的浏览器历史记录

时间:2019-07-06 02:52:01

标签: ruby-on-rails ajax pagination ruby-on-rails-5 kaminari

我有一个使用Kaminari进行分页的Rails应用程序。分页是使用AJAX构建的。我想使用浏览器历史记录来使用浏览器上的后退和前进按钮。我可以使用AJAX功能,但是浏览器历史记录不起作用。

这是我的分页链接:

<%= paginate @contacts, remote: true %>

链接具有以下html代码:

<ul class="pagination">
  <li>
    <a data-remote="true" href="/contacts?page=3">3</a>
  </li>
</ul>

这是我的js代码:

$(document).on('turbolinks:load', function() {
  $('#term').autocomplete({
    source: '/contacts/autocomplete',
    minLength: 3,
    select: function(event, ui) {
      $('#term').val(ui.item.value);
      $(this).closest('form').submit();
    }
  });

  $('.pagination a[data-remote=true]').on('click', function() {
    console.log(this);
    window.history.pushState({}, '', $(this).attr('href'));
  });

  $(window).on('popstate', function() {
    $.get(document.location.href);
  });
});

当我单击分页链接时,在浏览器地址栏中设置了href,这正是我想要的。但是,当我单击其他分页链接时,地址栏不会更改。另外,当我单击浏览器上的“后退”按钮时,它也不会返回上一页。

0 个答案:

没有答案