我一直在关注几个railscasts,目前有一个使用will_paginate的无尽页面的产品列表。我想要实现railscast#240以将实时搜索添加到结果中,但似乎存在一些逻辑冲突,我不知道如何纠正。jQuery的追加或替换基于来自铁路的呼叫?
简单来说,内部index.js.erb的无尽的页面需要添加使用附加产品的现有名单如下产品:
$(“#产品”)。 append('<%= j render(@products)%>');
然而,生活搜索的实现需要更换的产品,从搜索结果新产品的现有名单:
$(“#产品”)。 html('<%= j render(@products)%>');
下面是完整的块:
$('#products').html('<%= j render(@products) %>'); // live search
$('#products').append('<%= j render(@products) %>'); // endless page
<% if @products.next_page %>
$('.pagination').replaceWith('<%= j will_paginate(@products) %>');
<% else %>
$('.pagination').remove();
<% end %>
了HTML()和append()为各自的使用很好地工作,如果我评论一出其他作品,但如果我不发表评论一个它变得非常不可靠。
如何设置它,所以如果用户在搜索框中键入它会触发html(),并且如果用户正在滚动触发器append()?有什么方法可以确定哪个事件触发了index.js.erb调用?