数据请求过多,导致加载很慢,就需要进行分页。
第几页page,每页多少条count,共几页totalPages。
page = n;
start = (n-1)*count;
totalPages = Math.ceil(tatalCount/count);
根据上述公式,结合豆瓣API源代码如下
js
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253(function(angular) {'use strict';/*定义模块*/var module = angular.module('moviecat.movie_list', ['ngRoute', 'moviecat.services.http']);/*定义路由*/module.config(['$routeProvider', function($routeProvider) {$routeProvider.when('/:category/:page', {templateUrl: 'movie_list/view.html',controller: 'MovieListController'});}]);/*定义控制器*/module.controller('MovieListController', ['$scope','$http','$route','$routeParams','HttpService',function($scope, $http, $route, $routeParams, HttpService) {var count = 6;var page = parseInt($routeParams.page);var start = (page - 1) * count;/*model*/$scope.loading = true;$scope.message = "";$scope.datalist = [];$scope.title = "";$scope.totalCount = 0;$scope.totalPages = 0;$scope.currentPage = page;HttpService.jsonp('http://api.douban.com/v2/movie/' + $routeParams.category, { start: start, count: count }, function(data) {console.log(data);$scope.loading = false;$scope.title = data.title;$scope.datalist = data.subjects;$scope.totalCount = data.total;$scope.totalPages = Math.ceil(data.total/count);$scope.$apply();console.log(data.subjects);});/*function*/$scope.go = function(page) {if (page > 0 && page <= $scope.totalPages) {$route.updateParams({ page: page });}};}]);})(angular);html
123456789<div ng-show="!loading"><p>总共:{{totalPages}}页,第{{currentPage}}/{{totalPages}}页</p><nav><ul class="pager"><li ng-class="{disabled:currentPage < 2}"><a href="javascript:" ng-click="go(currentPage-1)">上一页</a></li><li ng-class="{disabled:currentPage >= totalPages}"><a href="javascript:" ng-click="go(currentPage+1)">下一页</a></li></ul></nav></div>
Note
路由通过 :变量名称 传递变化数据
123456module.config(['$routeProvider', function($routeProvider) {$routeProvider.when('/:category/:page', {templateUrl: 'movie_list/view.html',controller: 'MovieListController'});}]);通过 $routeParams.变量名称 获取路由变量值
1var page = parseInt($routeParams.page);