发表于: 2017-07-14 21:28:05

1 948


今天主要完成的是翻页功能

分析一下翻页功能,主要有几点,一个是可以设置页面显示几条数据,还可以直接通过点击首页、末页跳转到对应数据页,并且可以点击按钮或输入直接去到对应页

1. 设置页面显示几条数据

首先还是双向绑定

每页显示<input class="number" type="text" size="1" ng-model="parmas.size">

并设置对应的url传参

url:"/home?type&status&startAt&endAt&size&page",

使页面显示的数据个数可设置

2. 设置页面按钮

$http({
       method: "get",
       url: "/a/a/article/search",
       params: $scope.parmas
   }).then(function success(response) {
       $scope.totalNum = Math.ceil(response.data.data.total/response.data.data.size);
       console.log($scope.totalNum);
       $scope.upperForm = response.data.data.articleList;

       //动态生成页码按钮
   $scope.pageNum = [ ];
       for (var i=0; i<$scope.totalNum ; i++) {
           $scope.pageNum.push(i+1);
       }
   }, function error(response) {
       alert("连接出错")
   });
};

首先通过向上取整的方式计算一共有多少页,然后命名一个新的空数组,通过for循环计算数组中一共有多少项

<span ng-repeat="x in pageNum">
       <button ng-click="xPage()">{{x}}</button>
</span>

在html页面中通过ng-repeat渲染出所有页面的对应按钮

3. 点击跳转到对应页

首先,为所有的按钮绑定一个ng-click事件,使页面点击的时候可以触发对应函数

接下来就是跳页

//页面跳转按钮部分
//点击按钮跳转到首页
$scope.firstPage = function () {
   $state.go('home',{page : 1})
};
//点击跳转到上一页
$scope.prePage = function () {
   if ($scope.parmas.page == 1) {
       $state.go('home',{page : $scope.totalNum})
   } else {
       $scope.parmas.page--;
   }
};
//点击按钮跳转到对应页
$scope.xPage = function () {
   $scope.parmas.page = this.$index + 1;
   $state.go('home',{page : $scope.parmas.page})
};
//点击跳转到下一页
$scope.nextPage = function () {
   if ($scope.parmas.page == $scope.totalNum) {
       $state.go('home',{page : 1})
   } else {
       $scope.parmas.page++;
   }
};
//点击跳转到末页
$scope.lastPage = function () {
   $state.go('home',{page : $scope.totalNum})
};
//点击跳转到自己输入的那页
$scope.jumpPage = function () {
   if ($scope.jPage >= 1 && $scope.jPage <= $scope.totalNum) {
       $state.go('home',{page : $scope.jPage})
   } else {
       alert("请输入正确的页数")
   }
}

首页和末页按钮直接跳转到对应页,动态渲染的按钮通过双向绑定跳转页面,上一页下一页跳转到$scope.parmas.page--和 $scope.parmas.page++页面,如果是首页末页通过if else函数判断

遇到的问题

如果不是在第一页的时候,通过搜索按钮搜索,可能搜索结果只显示一页,但是当前页不是第一页,导致列表部分是空白的

给搜索按钮添加了一个ng-click事件,只要搜索就会跳转到第一页,就解决了这个问题

今天的计划是做上传图片


返回列表 返回列表
评论

    分享到