2016-02-05 31 views
2

我想获得Angular UI Boostrap分页控件与Web API控制器填充的表一起工作。AngularJS UI Bootstrap分页控制关闭一页

我有一个是在分页控制中使用的指令:

app.filter('pagination', function() { 
    return function (input, start) { 
     start = +start; 
     return input.slice(start); 
    }; 
}); 

我在我的角度控制器的以下:

$scope.currentPage = 0; 
// max items per page 
$scope.pageSize = 10; 
// number of pagination buttons to display 
$scope.numberButtons = 5; 
// total items in the array 
$scope.totalItems = 0; 
// number of pages 
$scope.numberPages = 0 

在视图中,我有以下(截断简洁):

... 
    <tr data-ng-repeat="assetType in assetTypes | filter:searchFilter 
     | pagination: currentPage * pageSize | limitTo: pageSize 
     | orderBy:sortType:sortReverse"> 
     <td><a href="#/asset-type-details/{{assetType.AssetTypeId}}">{{ assetType.AssetTypeId }}</a></td>--> 
     <td>{{ assetType.AssetTypeName }}</td> 
     <td>{{ assetType.Active | yesNo }}</td> 
    </tr> 
</table> 
<uib-pagination ng-show="totalItems" total-items="totalItems" max-size="numberButtons" ng-model="currentPage" class="pagination-sm" boundary-link-numbers="true" rotate="false"></uib-pagination> 

我遇到的问题是当视图initally上来,everyt兴是好的。按照预期,前10个项目(按Id排序)以Ids 1-10(例如)开始。但是,当我离开第一页导航并返回到第一页时,我得到项目11-20而不是1-10。

当我使用自定义传呼机控件时,顶部的角度过滤器工作正常,但当您从第一页导航时,角度UI似乎偏离了一页。

另外,项目数量($ scope.totalItems)和页面数量($ scope.numberPages)正在我的控制器方法中设置,这里没有描述。

任何帮助表示赞赏

编辑:我注意到另一件事是,当我浏览到最后一页,它没有返回数据,所以分页的整个范围由一个似乎关闭。

编辑2:好吧,看来我得到它的工作。我不得不在当前页设置为1,而不是0:

$scope.currentPage = 1; 

然后改变我的分页控制减去1(当前是-1):

<tr data-ng-repeat="assetType in assetTypes | filter:searchFilter 
    | pagination: (currentPage-1) * pageSize | limitTo: pageSize 
    | orderBy:sortType:sortReverse"> 

如果这证明了我将它张贴作为当我被允许时的答案。

回答

2

如前所述ñ我原来的职位,我只好在当前页设置为1,而不是0:

$scope.currentPage = 1; 

然后改变我的分页控制减去1(当前是-1):

<tr data-ng-repeat="assetType in assetTypes | filter:searchFilter 
    | pagination: (currentPage-1) * pageSize | limitTo: pageSize 
    | orderBy:sortType:sortReverse">