尝试使用Elasticsearch和AngularJS设置此great looking pagination module以用于我的小型搜索应用。
我想要完成的是在初始搜索请求中加载前100个结果,一次在页面上显示10个结果。
我在ng-repeat上的内容(替换为此模块的dir-paginate)是
<li dir-paginate="page in results.documents | itemsPerPage:pageSize" current-page="currentPage" total-items="totalItems">
在控制器和ES请求中都设置了pageSize和totalItems。 PageSize设置为10,totalItems设置为100。
在分页控件中我有<dir-pagination-controls max-size="10" direction-links="true" boundary-links="true"></dir-pagination-controls>
。但是,当我点击控件中的数字时,没有任何反应,为什么?
我从最初的搜索请求中将前100个结果加载到用户界面中,因此它应该一次过滤10个,对吧?模块说它假设是即插即用所以我假设只要你有正确的设置,它已经有一个内置的过滤器来做到这一点。
我哪里错了?
答案 0 :(得分:0)
从您的total-items
中删除<li>
属性。
async
次来电只需要总项数。因为,您正在加载您的数据(100条记录)。因此,您不需要设置此属性。
以下是文档说的内容:
total-items - 处理异步数据时(即数据) 在服务器上分页并一次向客户端发送一个页面, 您将只发送一页结果,然后发送一些元数据 包含结果总数。在这种情况下,分页 指令会认为你的一页结果是完整的 数据集,因此不需要分页。防止默认 行为,您需要指定total-items属性,这将是 然后用于计算分页。有关更多信息,请参阅 关于使用下面的异步数据的部分。