【发布时间】:2016-01-18 10:33:33
【问题描述】:
我正在尝试使用paginate() 来实现无限滚动。我认为最简单的方法是使用“无限滚动”来实现这一点。如果您有任何其他建议如何在没有无限滚动库的情况下做到这一点,只需使用 jQuery,我很高兴知道..
我正在返回变量以像这样查看:
public function index()
{
$posts = Post::with('status' == 'verified')
->paginate(30);
return view ('show')->with(compact('posts'));
}
我的观点:
<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>
Javascript 部分:
$(document).ready(function() {
(function() {
var loading_options = {
finishedMsg: "<div class='end-msg'>End of content!</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 li:last a", // is this where it's failing?
itemSelector: "#content div.item"
});
});
});
但是,这不起作用。 ->render() 部分正在工作,因为我得到了 [] 部分。但是,无限滚动不起作用。我也没有在控制台中收到任何错误。
[] 在视图中是这样的:来源:
<ul class="pagination">
<li class="disabled"><span>«</span> </li> // «
<li class="active"><span>1</span></li> // 1
<li><a href="http://test.dev/?page=2">2</a></li> // 2
<li><a href="http://test.dev/?page=3">3</a></li> // 3
<li><a href="http://test.dev/?page=2" rel="next">»</a></li> // »
</ul>
【问题讨论】:
-
我承认,我不熟悉无限滚动插件,但我已经做了一些我自己构建的无限滚动。我将 pages 变量保存在隐藏的输入框中,当您滚动到底部时,页数会更新,并且会调用根据新页码提取新条目的函数并将新条目附加到容器的底部.我还设置了一个 max_pages 隐藏输入框,因此当用户达到该 max_page 计数时,您会看到一条类似于页尾的消息。我不知道这是否是最好的方法,但它对我来说效果最好。你想看一些经验吗?
-
我愿意接受任何建议,只要我也可以使用加载文本/图像(因此具有加载状态的功能)。我认为最好自己做而不是使用库,但我想我很想坚持使用 Laravel 的
paginate()。我很想看看你的方法。你能适应我的情况吗? -
当然!在下面查看我的答案。 :)
-
这是一个相关问题:stackoverflow.com/q/16487576/470749
标签: javascript jquery laravel pagination infinite-scroll