在 Silverstripe 4 博客模块中加载更多 Ajax
Doing a Load More Ajax in Silverstripe 4 Blog module
目前我正在使用 SS4 博客模块。
我们使用了分页风格的博客。
现在我们需要加载更多内容 ajax。
知道如何在 SS4 中执行此操作吗?
我正在寻找这方面的示例,但社区无法给我答案。
虽然你的问题不是很清楚,但我会尽量按照我认为合理的方式来回答。
分页:此视图就像一本书,您实际上必须逐一翻阅 "Page"。如果您在第 2 页,您将看不到第 1 页的内容。
LoadMore:您从第 1 页开始,然后将第 2 页的结果附加到第 1 页所在的视图。这样您就可以在创建页面堆栈的同一页面上查看第 1 页和第 2 页。
对于您要求的 LoadMore。
您需要一个 js 变量 var currentPage = 1;
来保存要从服务器加载的当前页面。每次请求数据时,您都需要提供您所在的当前页面。逻辑上是这样的
- 您在加载 Page1 的情况下呈现您的页面;当前页面 = 1;
- OnClickingLoadMore 按钮;当前页面++;
- 通过ajax发送请求。
var url = 'server.com/posts/pull?page='+currentPage;
- 在当前视图上追加返回的数据。
PostsController.php
将方法名称添加到 allowed-action
private static $allowed_actions = [
'pull',
];
使用下面的代码创建一个名为 "pull" 的方法。
$oListings = BlogPost::get();
$oList = new PaginatedList( $oListings, $this->request );
$oList->setPageLength( $limit );
$oList->setCurrentPage( $page );
最后是你的routes.yml(简体)
SilverStripe\Control\Director:
rules:
'posts//$Action/$ID/$OtherID': 'PostsController'
最后,您可以使用 jQuery APPEND [http://api.jquery.com/append/] 向您的页面添加更多内容。
希望对您有所帮助
目前我正在使用 SS4 博客模块。 我们使用了分页风格的博客。
现在我们需要加载更多内容 ajax。
知道如何在 SS4 中执行此操作吗?
我正在寻找这方面的示例,但社区无法给我答案。
虽然你的问题不是很清楚,但我会尽量按照我认为合理的方式来回答。
分页:此视图就像一本书,您实际上必须逐一翻阅 "Page"。如果您在第 2 页,您将看不到第 1 页的内容。
LoadMore:您从第 1 页开始,然后将第 2 页的结果附加到第 1 页所在的视图。这样您就可以在创建页面堆栈的同一页面上查看第 1 页和第 2 页。
对于您要求的 LoadMore。
您需要一个 js 变量 var currentPage = 1;
来保存要从服务器加载的当前页面。每次请求数据时,您都需要提供您所在的当前页面。逻辑上是这样的
- 您在加载 Page1 的情况下呈现您的页面;当前页面 = 1;
- OnClickingLoadMore 按钮;当前页面++;
- 通过ajax发送请求。
var url = 'server.com/posts/pull?page='+currentPage;
- 在当前视图上追加返回的数据。
PostsController.php
将方法名称添加到 allowed-action
private static $allowed_actions = [
'pull',
];
使用下面的代码创建一个名为 "pull" 的方法。
$oListings = BlogPost::get();
$oList = new PaginatedList( $oListings, $this->request );
$oList->setPageLength( $limit );
$oList->setCurrentPage( $page );
最后是你的routes.yml(简体)
SilverStripe\Control\Director:
rules:
'posts//$Action/$ID/$OtherID': 'PostsController'
最后,您可以使用 jQuery APPEND [http://api.jquery.com/append/] 向您的页面添加更多内容。
希望对您有所帮助