在SilverStripe 4博客模块中进行负载更多的AJAX



当前我正在使用SS4博客模块。我们使用了分页的博客风格。

现在,我们需要更多的ajax来获得更多内容。

关于如何在SS4中执行此操作的任何想法?

我正在寻找一个例子,但是社区无法给我一个答案。

尽管您的问题尚不清楚,但我会尝试以我认为有意义的方式回答它。

分页:这种观点就像是一本书,您实际上必须翻阅每个"页面"。如果您在第2页上,您将不会看到第1页上的内容。

loadMore:您从第1页开始,然后将第2页的结果附加到查看第1页的位置。这样,您可以在同一页面上查看第1页和第2页创建页面堆栈。

对于您询问的Loadmore。您需要一个JS变量var currentPage = 1;才能保留从服务器加载的当前页面。每次请求数据时,都需要提供您所在的当前页面。从逻辑上讲这样的东西

  1. 您将页面渲染给Page1已加载;CurrentPage = 1;
  2. onclickingloadmore按钮;CurrentPage ;
  3. 通过AJAX发送请求。var url = 'server.com/posts/pull?page='+currentPage;
  4. 在当前视图上返回的数据。

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/]在页面中添加更多内容。

希望这有帮助

最新更新