angularJs 中 uib-pagination 的总页数问题
Problems with total number of pages in uib-pagination in angularJs
有一个关于类似主题的旧线程 没有回答我的问题,我不知道如何添加。
我们有一个复杂的 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?
在服务器 returns 产生的搜索代码中,我们有以下内容:
.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 设置 pagecount 而不是 total-items
?
更新。似乎问题出在我们的指令 RowClick 代码中。一旦我注释掉一行代码,问题似乎就解决了。
所以,这不是一个答案,但我认为只有当我打开我的编辑表单时,这个错误才会出现。
索引页如下所示:
<div ng-controller="DynamicRulesController">
<div ng-controller="dynamicRulesSearchController">
<data-sm:list data-name="dynamicRules"
data-table="table"
data-hide-hidden-filter="true"
data-show-search="true"
data-can-hide-search="false"
data-on-before-new-record="onBeforeNewRecord"
data-dont-go-to-new-state="true"
data-pk="ruleId"
data-param-id="id"
data-heading="heading">
</data-sm:list>
</div>
<div class="edit-container ng-cloak" ng-show="!isEditLoading" ui-view autoscroll="false"></div>
</div>
只要我停留在索引页上并且不打开编辑表单(ui-视图),分页就可以正常工作。一旦我打开我的编辑表单,它就会停止工作。与状态和 ui-view 相关的东西似乎会干扰。
有一个关于类似主题的旧线程
我们有一个复杂的 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?
在服务器 returns 产生的搜索代码中,我们有以下内容:
.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 设置 pagecount 而不是 total-items ?
更新。似乎问题出在我们的指令 RowClick 代码中。一旦我注释掉一行代码,问题似乎就解决了。
所以,这不是一个答案,但我认为只有当我打开我的编辑表单时,这个错误才会出现。
索引页如下所示:
<div ng-controller="DynamicRulesController">
<div ng-controller="dynamicRulesSearchController">
<data-sm:list data-name="dynamicRules"
data-table="table"
data-hide-hidden-filter="true"
data-show-search="true"
data-can-hide-search="false"
data-on-before-new-record="onBeforeNewRecord"
data-dont-go-to-new-state="true"
data-pk="ruleId"
data-param-id="id"
data-heading="heading">
</data-sm:list>
</div>
<div class="edit-container ng-cloak" ng-show="!isEditLoading" ui-view autoscroll="false"></div>
</div>
只要我停留在索引页上并且不打开编辑表单(ui-视图),分页就可以正常工作。一旦我打开我的编辑表单,它就会停止工作。与状态和 ui-view 相关的东西似乎会干扰。