【发布时间】:2014-01-17 07:30:43
【问题描述】:
我已尝试解决此问题一段时间,但找不到解决方案。我有 ajax 控制页面选项卡上的一些,这工作正常:
$("#feed-content").html("<%= escape_javascript(render(:partial => "#{@partial_name}")) %>");
但后来我添加了将无限滚动的 will_paginate,我将控制它的 js 放在与上述相同的 js.erb 文件中(sale.js.erb):
$("#feed-content").html("<%= escape_javascript(render(:partial => "#{@partial_name}")) %>");
$('#products').append('<%= escape_javascript(render(:partial => 'sale_content', :products => @products, :remote => true)) %>');
<% if @products.next_page %>
$('.pagination').replaceWith('<%= escape_javascript( will_paginate(@products)) %>');
<% else %>
$('.pagination').remove();
<% end %>
但这不起作用。但是每个部分都是单独工作的。
然后我尝试了这个,但它仍然不起作用(它只加载 if 部分):
<% if params[:feed]%>
$("#feed-content").html("<%= escape_javascript(render(:partial => "#{@partial_name}")) %>");
<% else %>
$('#products').append('<%= escape_javascript(render(:partial => 'sale_content', :products => @products, :remote => true)) %>');
<% if @products.next_page %>
$('.pagination').replaceWith('<%= escape_javascript( will_paginate(@products)) %>');
<% else %>
$('.pagination').remove();
<% end %>
视图
...
<p class="hero-description-dark local-nav-container">Sort by <%= link_to "popular", products_popular_path(:feed => "popular"), :remote => true, :class => "active"%> or <%= link_to "sale", products_sale_path(:feed => "sale"), :remote => true%></p>
控制器
def sale
products = Product.gender(current_user).available.includes(:likes)
@products = products.filter_by_categories(products).first(100).paginate(:page => params[:page], :per_page => 6)
@partial_name = "sale"
respond_to do |format|
format.html
format.json { render json: @products}
format.js
end
end
【问题讨论】:
-
这个
params[:feed]里面是什么?它是返回布尔值true/false还是整数 1/0 ? -
我已经用我的视图文件和控制器文件更新了这个问题。我使用 params[:feed] 传递一个值,然后检查该值是否存在。但显然我做错了什么。就是不知道怎么解决。
标签: javascript ruby-on-rails ajax tabs will-paginate