kaminari ajax pagination не обновляет paginate - PullRequest
4 голосов
/ 02 апреля 2011

Я использую пагинацию в rails3, используя гем kaminari.

Я следовал этому коду от github https://github.com/amatsuda/kaminari_example/commits/ajax

к сожалению, следующий код

jQuery('#paginator').html('<%= escape_javascript(paginate(@recipes,:remote=>true).to_s) %>');

похоже не работает.

Мой javascript для того, что делать, что пользователь выбирает страницу,

  jQuery('a','nav.pagination').click(function(){
         // get the page value from href
          var page = jQuery(this).attr('href').replace('/home/index?page=','');
          jQuery.getJSON('?page='+page, function(data){
                 for (var r in data){
                   results.push(data[r]);
          });
              showResults(results,(page-1)*10);
              jQuery('#paginator').html('<%= escape_javascript(paginate(@recipes,:remote=>true).to_s) %>');
  });

функция showResults запускается через JSON и создает группу элементов html. Все работает отлично, за исключением того, что нумерация страниц не обновляется, чтобы показать текущую страницу при перезагрузке результатов.

Я не получаю ошибок в firebug, я использую Rails 3 с ruby ​​192.

Ответы [ 2 ]

1 голос
/ 04 апреля 2011

Вы уверены, что у вас есть элемент #paginator для paginator в вашем HTML?Я имею в виду, следующий код возвращает элемент в Firebug?

jQuery('#paginator')
0 голосов
/ 10 марта 2018

Для того, чтобы обновить результат и разбить на страницы, вам нужно обновлять оба одновременно. Paginate AJAX отправляет запрос как JS, поэтому для его обработки у вас должен быть файл action.js.erb внутри папки просмотра. Выполните две вещи здесь.

1) Результат обновления

$("#issues").html("<%= j render(:partial => 'recipes') %>");

2) Обновление Paginate

$('.pagination').html('<%= escape_javascript(paginate(@recipes, :remote => true).to_s) %>');

Найти соответствующий атрибут страницы для обновления страницы. Это обновит результат и разбит на страницы.

...