当前我正在使用SS4博客模块。我们使用了分页的博客风格。
现在,我们需要更多的ajax来获得更多内容。
关于如何在SS4中执行此操作的任何想法?
我正在寻找一个例子,但是社区无法给我一个答案。
尽管您的问题尚不清楚,但我会尝试以我认为有意义的方式回答它。
分页:这种观点就像是一本书,您实际上必须翻阅每个"页面"。如果您在第2页上,您将不会看到第1页上的内容。
loadMore:您从第1页开始,然后将第2页的结果附加到查看第1页的位置。这样,您可以在同一页面上查看第1页和第2页创建页面堆栈。
对于您询问的Loadmore。您需要一个JS变量var currentPage = 1;
才能保留从服务器加载的当前页面。每次请求数据时,都需要提供您所在的当前页面。从逻辑上讲这样的东西
- 您将页面渲染给Page1已加载;CurrentPage = 1;
- onclickingloadmore按钮;CurrentPage ;
- 通过AJAX发送请求。
var url = 'server.com/posts/pull?page='+currentPage;
- 在当前视图上返回的数据。
postscontroller.php
将方法名称添加到允许的行动
private static $allowed_actions = [
'pull',
];
在下面的代码中创建一种称为"拉"的方法。
$oListings = BlogPost::get();
$oList = new PaginatedList( $oListings, $this->request );
$oList->setPageLength( $limit );
$oList->setCurrentPage( $page );
最后您的路线(简化(
SilverStripeControlDirector:
rules:
'posts//$Action/$ID/$OtherID': 'PostsController'
最后使用jQuery您可以附加[http://api.jquery.com/append/]在页面中添加更多内容。
希望这有帮助