will_paginate + вкладки jquery ui - PullRequest
       4

will_paginate + вкладки jquery ui

3 голосов
/ 14 февраля 2011

HI

Я использую модальный диалог jquery ui. В этом диалоге у меня есть две вкладки jquery ui, каждая из которых содержит div со списком элементов, которые разбиты на страницы с помощью will_paginate (rails).

У меня есть несколько проблем:

  • когда я нажимаю на страницу с нумерацией страниц, мой модал закрывается, но у меня есть URL /? Page = 2
  • когда я снова открываю модальное окно, я нахожусь на второй странице моей первой вкладки, и если я нажимаю на вторую вкладку, я также на второй странице, которая мне не нужна

Спасибо за помощь.

1 Ответ

2 голосов
/ 20 февраля 2011

Я предполагаю, что ваш модальный диалог закрывается, потому что вы обновляете страницу новым параметром.Вот официальные инструкции по использованию ajax с will_paginate, поэтому вам не нужно обновлять страницу:
https://github.com/mislav/will_paginate/wiki/Ajax-pagination

Вы также можете попробовать решение RemoteLinkRenderer, если вас не волнуетсканируемость этих страниц.По сути, создайте помощника с именем remote_link_renderer.rb и вставьте в него:

class RemoteLinkRenderer < WillPaginate::LinkRenderer
  def prepare(collection, options, template)
    @remote = options.delete(:remote) || {}
    super
  end

  protected
  def page_link(page, text, attributes = {})
    @template.link_to_remote(text, {:url => url_for(page), :method => :get}.merge(@remote), attributes)
  end
end

Затем, на ваш взгляд, убедитесь, что ваш вызов will_paginate имеет следующие параметры:

<%= will_paginate @items, :renderer => 'RemoteLinkRenderer' , :remote => { :update => 'items_div'} %>

где @items это то, что ваша переменная разбита на страницы, а items_div это идентификатор обновляемого элемента dom.

Для получения дополнительной информации вы можете зайти в Google по номеру will_paginate remotelinkrenderer.

Что касается вашего второго вопроса, проблема в том, что обе страницы используют один и тот же параметр для отслеживания, на какой странице они находятся.,Вы можете исправить это, в представлении при вызове will_paginate, включая опцию :param_name в одном или обоих экземплярах, например, :param_name=>:tab2_page.Здесь указано: http://rubydoc.info/gems/will_paginate/2.3.15/WillPaginate/ViewHelpers

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...