14

jest to rozwiązaniebędzie_popraszać z niekończącym się przewijaniem | Rails4

więc używam will_paginate/Bootstrap Will Paginate Endless przewijania.

Aby uzyskać pracę Paginację:

1.) w moim kontrolera I aktualizowany moje działanie indeksu z

@clips = Clip.order("created_at desc").page(params[:page]).per_page(20) 

2.) Edytuj mój widok indeksu:

<%= will_paginate @clips%> 

WYKONANE

Paginacja działa dobrze.

To Add Endless scrolling Wykonałem te same czynności co w poprzedniej aplikacji Rails 3.

1.) Edit mój clips.js.coffee

jQuery -> 
$('#clips-masonry').imagesLoaded -> 
    $('#clips-masonry').masonry itemSelector: ".clips-masonry" # Thats my Masonry 

if $('.pagination').length # Thats for the Endless Scrolling 
    $(window).scroll -> 
     url = $('.pagination .next_page a').attr('href') 
     if url && $(window).scrollTop() > $(document).height() - $(window).height() - 50 
      # What to do at the bottom of the page 
      $('.pagination').text("Fetching more Clips...") 
      $.getScript(url) 
     $(window).scroll() 

2.) Załóż index.js.erb z:

$boxes = $('<%= j render(@clips) %>') 

$('#clips-masonry').append($boxes).imagesLoaded(function(){ 
    $('#clips-masonry').masonry('reload'); 
}); 
<% if @clips.next_page %> 
    $('.pagination').replaceWith('<%= j will_paginate(@clips) %>'); 
<% else %> 
    $('.pagination').remove(); 
<% end %> 

3.) Dodano format.js do mojej akcji indeksu kontrolera

def index 
    @clips = Clip.order("created_at desc").page(params[:page]).per_page(12) 
    respond_to do |format| 
     format.html 
     format.js 
    end 
end 

4.) Moja _clip.html.erb jest opatrywana div

<div class="clip-box clips-masonry" data-no-turbolink> 
+0

W czym problem? kod partycji nieskończonego przewijania będzie działał (choć nie jest przyjazny dla turbolinków) - jeśli podasz swój błąd, możesz uzyskać wgląd. – trh

+0

Problem polega na tym, że nie działa :), nie ma błędu, nieskończoność po prostu nie działa :(Myślę, że ma to związek z format.js, który muszę dołączyć do kontrolera, ale w Railsach 4 kontrolery Zmieniono i nie mogę uruchomić go do pracy. –

+0

Działa to dobrze dla mnie, nadal używam bloku respond_to z format.js.Jak jest wywołanie zdarzenia w dzienniku, html? coś jak 'klipy? strona = 2 'with' ClipsController # index as HTML'? – trh

Odpowiedz

7

Ok, mam go pracy z moim zaktualizowany pytanie każdy, kto natknie się na ten problem, jest to rozwiązanie.