自己封装了一个指令,只能上一页下一些,给你参考下吧


.directive("bsPager", function () {
return {
restrict: *E*,
replace: true,
scope: {
pages: *@paginatePages*,
currentPage: *=*
},
template: *<ul class="pager"><li class="previous" ng-class="{disabled:currentPage==1}"><a href="javascript:" ng-click="previous()">上一页</a></li><li>{{currentPage}}/{{pages==0?1:pages}}</li><li class="next" ng-class="{disabled:currentPage==(pages > 0 ? pages:1)}"><a href="javascript:" ng-click="next()">下一页</a></li></ul>*,
controller: function ($scope, $element, $attrs) {
//如果不在controller里初始化当前页为1,会加载两次:undefined:1
$scope.currentPage = $scope.currentPage ? $scope.currentPage : 1;
$scope.previous = function () {
if ($scope.currentPage > 1) {
$scope.currentPage = $scope.currentPage - 1;
};
};
$scope.next = function () {
if ($scope.currentPage < $scope.pages) {
$scope.currentPage = $scope.currentPage + 1;
};
};
}
};
})
用法就是这样:
html:
<bs-pager paginate-pages=*{{PageCount}}* current-page=*current*></bs-pager>
js:
$scope.current = 1;//默认值
$scope.$watch("current", function () {
SearchRequest.PageIndex = $scope.current;
KeyBase.GetList.get(SearchRequest, function (data) {
$scope.PageCount = data.PageCount;
$scope.RecordCount = data.RecordCount;
$scope.datalist = data.Content;
});
});
KeyBase.GetList获取的结果类似这样:
data = {
code:0,
Content:{
PageCount:2,
RecordCount:2
Content:""
},
Message:""
}