对于js.erb文件的ruby if语句

时间:2014-11-07 14:44:52

标签: javascript jquery ruby-on-rails ruby ajax

有没有人可以协助我设置我的js.erb文件来涵盖两个场景。

目前,当页面最初加载时我有无限滚动工作,但是当我更改params时,新集合加载正常,但是当我向下滚动页面以加载其余结果时,我只得到下一组6对象替换最后一个,而不是将它们附加到最后

rehome.js.erb

$('.all_animals').append("<%= j render @animals %>");
 <% if @animals.next_page %>
  $('.pagination').replaceWith('<%= j will_paginate @animals %>');
 <% else %>
  $(window).off('scroll');
  $('.pagination').empty();
 <% end %>

的Javascript

function infiniteScroll() {
 if($('#infinite-scrolling').size() > 0) {
 $(window).on('scroll', function(){
 //Bail out right away if we're busy loading the next chunk
 if(window.pagination_loading){
  return;
 }
   more_url = $('.pagination a.next_page').attr('href');

if(more_url && $(window).scrollTop() > $(document).height() - $(window).height() - 50){

//Make a note that we're busy loading the next chunk.
  window.pagination_loading = true;
  $('.pagination').text('Loading.....');
   $.getScript(more_url).always(function(){
    window.pagination_loading = false;
  });
 }
 });
} 
}

所以在页面加载时我调用函数

$(function(){
 infiniteScroll();
});

并作为ajax成功回调

success: function(data) {
     infiniteScroll();
   }

当进行ajax调用时,params:rehomed总是存在,所以我可以将单独的逻辑包装在

<% if params[:rehomed].present? %>

<% end %>

有没有人有任何想法来处理我的rehome.js.erb文件中新加载的内容

由于

更新

所以在页面加载时我需要这个是逻辑

$('.all_animals').append("<%= j render @animals %>");
 <% if @animals.next_page %>
  $('.pagination').replaceWith('<%= j will_paginate @animals %>');
 <% else %>
  $(window).off('scroll');
  $('.pagination').empty();
<% end %>

当我需要对集​​合进行更新时

$('.all_animals').empty();
$('.all_animals').append("<%= j render @animals %>");

<% if @animals.next_page %>
 $('.pagination').replaceWith('<%= j will_paginate @animals %>');
<% else %>
 $(window).off('scroll');
 $('.pagination').empty();
<% end %>

如何将它们组合成一个语句就是我想要解决的问题

0 个答案:

没有答案