2015-10-19 15 views
6

sto con successo restituire i dati dal controllerInfinite Scroll jQuery & laravel 5 Impagina

public function index() 
{ 
    $posts = Post::with('status' == 'verified) 
         ->paginate(30); 

    return view ('show')->with(compact('posts')); 
} 

Inoltre, sto mostrando con successo tutto quello che a mio avviso:

<div id="content" class="col-md-10"> 
    @foreach (array_chunk($posts->all(), 3) as $row) 
     <div class="post row"> 
      @foreach($row as $post) 
       <div class="item col-md-4"> 
        <!-- SHOW POST --> 
       </div> 
      @endforeach 
     </div> 
    @endforeach 
    {!! $posts->render() !!} 
</div> 

Tutto funziona bene fino ad ora.

Tuttavia, non ho ricevuto la documentazione ufficiale. Cosa sono 'div.navigation' e '#content div.post'? Cosa dovrebbero essere nel mio caso?

frammento Documentazione:

$('#content').infinitescroll({ 

    navSelector : "div.navigation",    
        // selector for the paged navigation (it will be ?>hidden) 
    nextSelector : "div.navigation a:first",  
        // selector for the NEXT link (to page 2) 
    itemSelector : "#content div.post"   
        // selector for all items you'll retrieve 
}); 

Edit: La mia Javascript So Far

$(document).ready(function() { 
(function() { 
    var loading_options = { 
     finishedMsg: "<div class='end-msg'>Congratulations! You've reached the end of the internet</div>", 
     msgText: "<div class='center'>Loading news items...</div>", 
     img: "/assets/img/ajax-loader.gif" 
    }; 

    $('#content').infinitescroll({ 
     loading: loading_options, 
     navSelector: "ul.pagination", 
     nextSelector: "ul.navigation a:first", 
     itemSelector: "#content div.item" 
    }); 
}); 
}); 

Il [< [1] 2] 3]>] parte viene creato nella parte inferiore della pagina ma lo scorrimento infinito non funziona. Inoltre, non ricevo registri o errori nella console.

+0

Bene, nei commenti è descritto ciò che questi selettori sono. 'div.navigation' è la tua navigazione (che non hai, ma potresti produrla come' $ posts-> render() '). e 'itemSelector' è il selettore di un elemento (nel tuo caso:' div.col-md-4'. Pensa ad aggiungere un'altra classe come 'post' ad esso). – Tim

+0

Ho modificato la mia domanda e aggiunto le lezioni come hai detto, tuttavia, non riuscivo ancora a collegarle nel mio cervello. Puoi mostrarmi per favore? – senty

+0

Vedere il mio plug-in infinit per l'impaginazione L5 qui http://stackoverflow.com/questions/31853472/laravel-infinite-scroll-for-pagination-output –

risposta

5

In primo luogo è necessario aggiungere l'impaginazione in sé come questo dopo la chiusura #content div:

{!! $posts->render() !!} 

Questa volontà di uscita qualcosa di simile:

<ul class="pagination"><li><a>...</a></li> 

Per sovrascrivere il presentatore impaginazione dare un'occhiata a this answer on SO .

Poi la configurazione si presenta così:

$(document).ready(function() { 
    var loading_options = { 
     finishedMsg: "<div class='end-msg'>Congratulations! You've reached the end of the internet</div>", 
     msgText: "<div class='center'>Loading news items...</div>", 
     img: "/assets/img/ajax-loader.gif" 
    }; 

    $('#content').infinitescroll({ 
     loading: loading_options, 
     navSelector: "ul.pagination", 
     nextSelector: "ul.pagination a:first", 
     itemSelector: "#content div.item" 
    }); 
}); 

In sostanza, lo scroller infinita chiamerà i link di paginazione per voi, e quindi ha bisogno di sapere, dove tutto si trova a mettere tutto insieme.

+0

Grazie mille per la risposta. Ho un'ultima domanda. Dove dovrei mettere 'class =" pagination "'? Quale dovrei cambiare? Dovrebbe essere esplicitamente "ul"? – senty

+0

Hai messo '{!! $ posts-> render() !!} 'alla fine del tuo' # content' div. Non devi mettere 'class =" pagination "' da nessuna parte in quanto questo viene emesso dalla funzione di Laravel. E sì, deve essere 'ul' perché quello è il formato usato dalla funzione' render'. – Tim

+0

Sono molto confuso. Capisco che metterò solo '{!! $ posts-> render() !!} 'per generare'

    ... 'bit. Quindi dentro 'class =" item "', giusto? E poi sotto, aggiungerò '
' – senty