angularjs使用directive实现分页组件的示例


Posted in Javascript onFebruary 07, 2017

闲来没事,分享下项目中自己写的分页组件。来不及了,直接上车。

效果:

angularjs使用directive实现分页组件的示例

angularjs使用directive实现分页组件的示例

angularjs使用directive实现分页组件的示例

输入框可任意输入,并会自动提交到该页

依赖项:

fontawesome,bootstrap

html:

<ul class="page clearfix">
  <li ng-hide="currentPage <= 1">
    <a href="" ng-click=" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" firstPage()">
      <i class="fa fa-step-backward"></i>
    </a>
    <a href="" ng-click=" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" prePage()">
      <i class="fa fa-play fa-flip-horizontal"></i>
    </a>
  </li>
  <li>
    <span>页码</span>
    <input type="text" ng-model="currentPage">/
    <span ng-bind="totalPage"></span>
  </li>
  <li ng-hide="currentPage >= totalPage">
    <a href="" ng-click=" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" nextPage()">
      <i class="fa fa-play"></i>
    </a>
    <a href="" ng-click=" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" lastPage()">
      <i class="fa fa-step-forward"></i>
    </a>
  </li>
</ul>

css:

/* 分页 */
.page {
  margin: 15px 0;
  padding: 0;
  float: right;
}
.page li {
  list-style: none;
  float: left;
  height: 30px;
  line-height: 30px;
}
.page li input {
  padding: 3px 5px;
  height: 100%;
  width: 50px;
  border: none;
  background-color: #EAEEF1;
  text-align: center;
  margin-right: 10px;
}
.page li span {
  margin-right: 15px;
}
.page li a {
  text-decoration: none;
  outline: none;
  margin-right: 15px;
}

directive:

App.directive('paging', function() { // 分页
  return {
    restrict: 'A',
    replace: true,
    scope: {
      totalPage: '=totalPage',
      currentPage: '=currentPage',
      getData: '&getData'
    },
    templateUrl: 'app/views/partials/paging.html',
    controller: function($scope) {

      $scope.firstPage = function() { $scope.currentPage = 1; }
      $scope.lastPage = function() { $scope.currentPage = $scope.totalPage; }
      $scope.prePage = function() { $scope.currentPage--; }
      $scope.nextPage = function() { $scope.currentPage++; }

      $scope.$watch('currentPage', function(newVal, oldVal) {
        if(newVal != oldVal && newVal) $scope.getData();
      })
    }
  };
});

参数:

  • totalPage: 总页数,
  • currentPage: 当前页,
  • getData: 点击分页所触发的函数

用法:

controller:

$scope.current_page = 1; // 当前页
$scope.getData = function() {
  $scope.param.page = $scope.current_page;
  ConnectApi.start('post', 'index/student/getschoolclasslist', $scope.param).then(function(response) { // 这个ConnectApi 你大可不必关心,这是我封装的http函数
    var data = ConnectApi.data({ res: response, _index: index });
    $scope.data = data.data;
    $scope.totalpage = data.data.total_page; // 服务器端返回的总页数
  }
}
$scope.getData(); // 获取数据的函数

html:

<div paging total-page="totalpage" current-page="current_page" get-data="getData()"></div>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
奇妙的js
Sep 24 Javascript
JS中的this变量的使用介绍
Oct 21 Javascript
返回上一页并自动刷新的JavaScript代码
Feb 19 Javascript
jquery text()方法取标签中的文本
Jul 25 Javascript
浅谈jquery.fn.extend与jquery.extend区别
Jul 13 Javascript
JavaScript实现节点的删除与序号重建实例
Aug 05 Javascript
jQuery zTree 异步加载添加子节点重复问题
Nov 29 jQuery
vue组件实现可搜索下拉框扩展
Oct 23 Javascript
jQuery解析json格式数据示例
Sep 01 jQuery
npm scripts 使用指南详解
Oct 08 Javascript
小程序云开发教程如何使用云函数实现点赞功能
May 18 Javascript
小程序实现横向滑动日历效果
Oct 21 Javascript
Bootstrap下拉菜单样式
Feb 07 #Javascript
基于JavaScript实现购物车功能
Feb 07 #Javascript
js实现类bootstrap模态框动画
Feb 07 #Javascript
canvas实现探照灯效果
Feb 07 #Javascript
javascript数据类型详解
Feb 07 #Javascript
JS简单获取当前年月日星期的方法示例
Feb 07 #Javascript
vuejs指令详解
Feb 07 #Javascript
You might like
一些PHP写的小东西
2006/12/06 PHP
php设计模式 Composite (组合模式)
2011/06/26 PHP
PHP将Excel导入数据库及数据库数据导出至Excel的方法
2015/06/24 PHP
php将数组存储为文本文件方法汇总
2015/10/28 PHP
php阳历转农历优化版
2016/08/08 PHP
Laravel 的数据库迁移的方法
2017/07/31 PHP
PHP保留两位小数的几种方法
2019/07/24 PHP
Prototype 1.5.0_rc1 及 Prototype 1.5.0 Pre0小抄本
2006/09/22 Javascript
javascript getElementsByClassName函数
2010/04/01 Javascript
早该知道的7个JavaScript技巧
2013/03/27 Javascript
jQuery实现图片上传和裁剪插件Croppie
2015/11/29 Javascript
Angular.js与Bootstrap相结合实现表格分页代码
2016/04/12 Javascript
Bootstrap学习笔记之css样式设计(2)
2016/06/07 Javascript
Ionic 2 实现列表滑动删除按钮的方法
2017/01/22 Javascript
详解react-webpack2-热模块替换[HMR]
2017/08/03 Javascript
angular4模块中给标签添加背景图的实现方法
2017/09/15 Javascript
JS计算两个时间相差分钟数的方法示例
2018/01/10 Javascript
vue.js实现点击后动态添加class及删除同级class的实现代码
2018/04/04 Javascript
关于vue利用postcss-pxtorem进行移动端适配的问题
2019/11/20 Javascript
[36:02]DOTA2上海特级锦标赛D组小组赛#2 Liquid VS VP第一局
2016/02/28 DOTA
简单介绍Python中的floor()方法
2015/05/15 Python
python+matplotlib实现动态绘制图片实例代码(交互式绘图)
2018/01/20 Python
Tensorflow 利用tf.contrib.learn建立输入函数的方法
2018/02/08 Python
使用python读取.text文件特定行的数据方法
2019/01/28 Python
浅谈Python线程的同步互斥与死锁
2020/03/22 Python
CSS3实现多背景展示效果通过CSS3定位多张背景
2014/08/10 HTML / CSS
如何将整数int转换成字串String
2014/03/21 面试题
大学生素质拓展活动方案
2014/02/11 职场文书
我的大学生活演讲稿
2014/04/25 职场文书
伊索寓言教学反思
2014/05/01 职场文书
推荐信怎么写
2014/05/09 职场文书
2014保险公司内勤工作总结
2014/12/16 职场文书
作文批改评语
2014/12/25 职场文书
西柏坡导游词
2015/02/05 职场文书
社区志愿服务活动感想
2015/08/07 职场文书
导游词之沈阳植物园
2019/11/30 职场文书