Javascript 有没有一种简单的方法可以使用jquery无限页面gem和无限滚动的搜索条件?
我正在使用gem和kaminarigem来无限滚动我的索引操作。我让它工作,但我也希望有一个搜索功能,按名称排序,等等,我也得到了工作,但代码真的很混乱,真的'黑客',因为我必须使用jquery的目标href和附加搜索词的url结尾 index.js.erbJavascript 有没有一种简单的方法可以使用jquery无限页面gem和无限滚动的搜索条件?,javascript,jquery,ruby-on-rails,gem,infinite-scroll,Javascript,Jquery,Ruby On Rails,Gem,Infinite Scroll,我正在使用gem和kaminarigem来无限滚动我的索引操作。我让它工作,但我也希望有一个搜索功能,按名称排序,等等,我也得到了工作,但代码真的很混乱,真的'黑客',因为我必须使用jquery的目标href和附加搜索词的url结尾 index.js.erb $("<%=j render(partial: 'drawings', object: @drawings) %>") .appendTo($(".gallery-page")); <% if @drawings.l
$("<%=j render(partial: 'drawings', object: @drawings) %>")
.appendTo($(".gallery-page"));
<% if @drawings.last_page? %>
$('.pagination').html("That's all, folks!");
<% else %>
$('.pagination')
.html("<%=j link_to_next_page(@drawings, 'Next Page', :remote => true) %>");
<% if @search.present? %>
var hrefEl = $('.pagination a').attr('href');
$('.pagination a').attr('href', hrefEl + "&search=" + "<%= @search %>");
<% end %>
<% if @order.present? %>
var hrefEl = $('.pagination a').attr('href');
$('.pagination a').attr('href', hrefEl + "&order=" + "<%= @order %>");
<% end %>
<% end %>
def index
if params[:search].blank? && params[:order].blank?
@drawings = Drawing.order('created_at DESC').page(params[:page])
else
if params[:search].blank?
@search = "%"
else
@search = params[:search].gsub(/[^a-zA-Z]/, "")
end
if params[:order] == "Newest" || params[:order].blank?
@order = "DESC"
else
@order = "ASC"
end
@drawings = Drawing.joins(:picture).where("name LIKE ?", @search).order("created_at #{@order}").page(params[:page])
end
@search = nil if @search == "%"
@order = params[:order]
end
我必须创建两个使用jquery附加到href末尾的部分
图纸\u controller.rb
$("<%=j render(partial: 'drawings', object: @drawings) %>")
.appendTo($(".gallery-page"));
<% if @drawings.last_page? %>
$('.pagination').html("That's all, folks!");
<% else %>
$('.pagination')
.html("<%=j link_to_next_page(@drawings, 'Next Page', :remote => true) %>");
<% if @search.present? %>
var hrefEl = $('.pagination a').attr('href');
$('.pagination a').attr('href', hrefEl + "&search=" + "<%= @search %>");
<% end %>
<% if @order.present? %>
var hrefEl = $('.pagination a').attr('href');
$('.pagination a').attr('href', hrefEl + "&order=" + "<%= @order %>");
<% end %>
<% end %>
def index
if params[:search].blank? && params[:order].blank?
@drawings = Drawing.order('created_at DESC').page(params[:page])
else
if params[:search].blank?
@search = "%"
else
@search = params[:search].gsub(/[^a-zA-Z]/, "")
end
if params[:order] == "Newest" || params[:order].blank?
@order = "DESC"
else
@order = "ASC"
end
@drawings = Drawing.joins(:picture).where("name LIKE ?", @search).order("created_at #{@order}").page(params[:page])
end
@search = nil if @search == "%"
@order = params[:order]
end
我的索引操作是一堆条件语句
\u draws.html.haml
%div
= form_tag("/drawings", method: 'get', id: 'search-form') do
= select_tag :search, options_for_select(name_list, params[:search]), prompt: "Search for..."
= select_tag :order, options_for_select(order_list, params[:order]), prompt: "Order by..."
= submit_tag "Search", id: 'search-button', class: 'btn btn-primary btn-lg'
.gallery
.gallery-page
= render 'drawings', object: @drawings
.pagination
= link_to_next_page(@drawings, 'Next Page', remote: true)
= render partial: 'pagination_search.js', object: @search unless @search.nil?
= render partial: 'pagination_order.js', object: @order unless @order.nil?
- @drawings.each do |drawing|
= link_to drawing_path(drawing) do
%img{src: drawing.image.thumb.url, class: 'gallery-image'}
所以我的问题是,有没有一种更干净、更优雅的方式来使用jquery infite pages gem进行无限滚动和搜索参数?或者这个gem不支持这样的东西吗?还有其他gem可以做到这一点吗?在搜索和订购时,能否向我们展示您的控制器和生成的下一页链接的HTML?这些应该由kaminari@PabloGonz阿拉莱萨尔巴增加了指数行动。生成的下一页链接的HTML与搜索和排序时使用的
index.HTML.haml
相同。