在类似主题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)。即使我在跟踪代码时看到控制器table.totalCount中的正确数字,我仍然看到相同的4页。
我们应该怎么做才能解决这个问题?我们是否应该在运行搜索之前将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;
&#13;
可能不是设置总项目,而是可以使用从服务器返回的页面计数(因为我们也在那里进行数学运算)?有没有办法为uib-pagination而不是total-items设置pagecount ?
答案 0 :(得分:0)
更新。好像问题出在我们的指令RowClick代码中。一旦我注释掉了一行代码,问题似乎就解决了。
所以,这不是一个答案,但我认为只有在我打开编辑表单时才会出现错误。
索引页面如下所示:
var i = 0;
var images = [];
images[0] = "img/img1.jpeg";
images[1] = "img/img2.jpeg";
images[2] = "img/img3.jpeg";
images[3] = "img/img4.jpeg";
var nextImage = function () {
if (i < images.length-1) {
i++;
} else {
i = 0;
}
document.querySelector('#slides').src = images[i];
}
var previousImage = function () {
if (i > 0) {
i--;
} else {
i = images.length - 1;
}
document.querySelector('#slides').src = images[i];
}
document.querySelector('#next').addEventListener('click', nextImage);
document.querySelector('#previous').addEventListener('click',
previousImage);
只要我停留在索引页面上并且不打开编辑表单(ui-view),分页就可以正常工作。只要我打开编辑表单,它就会停止工作。与状态和ui-view相关的东西似乎会干扰。