【发布时间】:2018-09-29 09:57:37
【问题描述】:
有一个关于类似主题 Calculating total-items in AngularJs Pagination (ui.bootstrap) doesn't work correctly 的旧帖子没有回答我的问题,我不知道如何添加。
我们有一个复杂的 smList 指令,它在页面底部有以下 html
<div class="text-center" ng-show="vm.table.pageCount > 1">
<ul uib-pagination
total-items="vm.table.totalCount"
ng-model="vm.table.pageNumber"
items-per-page="vm.table.pageSize"
max-size="5"
rotate="false"
ng-change="vm.selectPage()"
previous-text="@Labels.previous"
next-text="@Labels.next"></ul>
</div>
在某些情况下,总页数不会正确更新。说,我用过滤器进行搜索并得到 4 页,当删除过滤器时,我应该得到更多的页面(超过 5 个)。即使在跟踪代码时,我仍然看到相同的 4 页,我在控制器 table.totalCount 中看到了正确的数字。
我们应该怎么做才能解决这个问题?我们是否应该在运行搜索之前始终将 totalCount 设置为 0?
在从服务器返回结果的搜索代码中,我们有以下内容:
.then(function (data) {
log.debug("After main search return...");
self.results = data.list;
self.table.totalCount = data.totalCount;
self.table.pageCount = data.pageCount;
self.table.pageSize = data.pageSize;
self.table.pageNumber = data.pageNumber;
self.showResults = true;
我们可以使用从服务器返回的页数来代替设置总项目数(就像我们在那里做数学一样)?有没有办法为uib-pagination而不是total-items设置pagecount ?
【问题讨论】:
-
你能发布你的完整代码吗?
-
这里是什么意思?模板和指令都非常复杂,不可能贴出来。我在进行搜索之前添加了将 totalCount 设置为 0,但这并没有解决问题。似乎只有在我单击列表中的行以首先显示编辑表单时才会出现问题。
-
所以我们需要在你的控制器中猜测你的代码?
-
我在帖子中添加了一些代码。正如我所说,该代码在指令中(在其控制器中),而不是在页面控制器中。
-
它默认为
null,它将显示容器中可能的最大页面,检查documentation以查看如何设置页面限制并添加prev/next如果你想要
标签: javascript html angularjs angularjs-directive pagination