Javascript 在引导模式中实现无限滚动?
我试图在引导模式中实现无限滚动。我尝试了几个无限卷轴库,但没有一个能在一个模式中工作 下面是我的代码现在的样子 打开模式时,jQuery侦听事件并从服务器请求数据:Javascript 在引导模式中实现无限滚动?,javascript,jquery,twitter-bootstrap,laravel,laravel-5,Javascript,Jquery,Twitter Bootstrap,Laravel,Laravel 5,我试图在引导模式中实现无限滚动。我尝试了几个无限卷轴库,但没有一个能在一个模式中工作 下面是我的代码现在的样子 打开模式时,jQuery侦听事件并从服务器请求数据: $(document).on('show.bs.modal', '#modal', function(event) { var modal = $(this); var modalBody = modal.find('.modal-body'); $.ajax({ url: '/messag
$(document).on('show.bs.modal', '#modal', function(event)
{
var modal = $(this);
var modalBody = modal.find('.modal-body');
$.ajax({
url: '/messages',
type: 'post',
dataType: 'json'
success: function(data)
{
// Append the rendered view to the modal body
modalBody.append(data.data.view);
}
});
});
下面是它从中检索消息的getData()
方法:
public function getData()
{
$messages = Message::paginate(10);
return response()->json([
'success' => true,
'data' => [
'view' => view('layouts.messages', ['messages' => $messages])->render()
]
], 200);
}
这是我的布局。消息刀片文件:
<div class="messages-container">
@foreach ($messages as $message)
<div class="message">{{ $message->text }}</div>
@endforeach
</div>
{{ $messages->links() }}
@foreach($messages作为$message)
{{$message->text}
@endforeach
{{$messages->links()}
最后,模态如下所示:
<div class="modal fade" id="modal" tabindex="-1">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-body">
<div class="messages-container">
@foreach ($messages as $message)
<div class="message">{{ $message->text }}</div>
@endforeach
</div>
{{ $messages->links() }}
</div>
</div>
</div>
</div>
@foreach($messages作为$message)
{{$message->text}
@endforeach
{{$messages->links()}
如您所见,我需要在每次加载时向.content容器
添加更多数据
从这里开始,我如何实现模式的无限滚动,这样,如果用户向下滚动到模式的底部,它将从服务器加载下一页并将其附加到模式正文中?一个快速的谷歌搜索结果是:
它特别提到了通过Ajax加载数据的能力。为什么在模式中实现infiniteScroll与在任何其他容器上实现它不同?为什么所有的infiniteScroll库都有一个相同的问题,即它们不接受JSON响应。他们希望看到整个HTML页面(至少我的结论是这样)。出于我的目的,我需要能够返回JSON响应,而且,据我所知,我不能简单地返回完整的HTML页面并将其附加到模态体。我用更多的细节更新了我的问题。已经尝试了这个库。当然,它们都是通过Ajax加载的。问题是1)它不接受JSON响应,2)它希望服务器返回整个HTML页面,据我所知,这无法与模式一起工作。在中不是这样,只需查看第一个示例并打开web inspector。每次加载更多内容时,您都会看到后续的XHR请求。正如我所说,它们都返回直接的HTML代码,而不是JSON响应。如果您能告诉我如何返回JSON响应并将其附加到模式,那么是的,但我找不到这样做的方法。@user498641查看选项
列表,它显示回调
。您可以编写自己的函数来执行AJAX请求,以获取数据并处理任何类型的响应。从那里,您可以循环JSON对象并将HTML附加到容器中。如果我将选项nextSelector
设置为空,则不会调用回调,如果我完全删除它,则无限滚动将永远持续,并在所有分页链接中循环。