AngularJS在调用支持Limit和Offset的外部数据资源时是否有Limit和Offset请求方法?
我想有一个比这更优雅的解决方案,我通过路线参数传递限制和偏移量:
function ListCtrl($scope, $http, $routeParams) {
$http.jsonp('http://www.example.com/api/list.jsonp?callback=JSON_CALLBACK&limit=' + $routeParams.limit + '&offset=' + $routeParams.offset,{callback: 'JSON_CALLBACK'}).success(function(data) {
$scope.list = data;
});
}
完整的分页解决方案是:(1) 与服务器/数据库通信的服务,(2) 处理下一个/上一个的指令,以及 (3) 将其粘合在一起的控制器。
一旦你有了指令和服务,你的控制器就像这样简单:
app.controller('MainCtrl', function($scope, myData) {
$scope.numPerPage = 5;
$scope.noOfPages = Math.ceil(myData.count() / $scope.numPerPage);
$scope.currentPage = 1;
$scope.setPage = function () {
$scope.data = myData.get( ($scope.currentPage - 1) * $scope.numPerPage, $scope.numPerPage );
};
$scope.$watch( 'currentPage', $scope.setPage );
});
使用同样简单的 HTML:
<body ng-controller="MainCtrl">
<ul>
<li ng-repeat="item in data">{{item.name}}</li>
</ul>
<pagination num-pages="noOfPages" current-page="currentPage" class="pagination-small"></pagination>
</body>
这是一个完整的 Plunker:http://plnkr.co/edit/Mg0USx?p=preview。它使用分页指令ui引导程序,这是一项正在进行的工作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)