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字符串处理实例代码
Aug 05 Javascript
JS删除字符串中重复字符方法
Mar 09 Javascript
JS 获取鼠标左右键的键值方法
Oct 11 Javascript
Google Maps API地图应用示例分享
Oct 23 Javascript
浅谈jquery之on()绑定事件和off()解除绑定事件
Oct 26 Javascript
完美解决浏览器跨域的几种方法(汇总)
May 08 Javascript
Angular4绑定html内容出现警告的处理方法
Nov 03 Javascript
详解Vue CLI 3.0脚手架如何mock数据
Nov 23 Javascript
vue 引用自定义ttf、otf、在线字体的方法
May 09 Javascript
微信小程序实现日期格式化和倒计时
Nov 01 Javascript
vue+vant实现购物车全选和反选功能
Nov 17 Vue.js
JavaScript实现滑块验证解锁
Jan 07 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获取后台Job管理的实现代码
2011/06/10 PHP
Smarty模板学习笔记之Smarty简介
2014/05/20 PHP
php.ini中date.timezone设置详解
2016/11/20 PHP
PHP长网址与短网址的实现方法
2017/10/13 PHP
复制小说文本时出现的随机乱码的去除方法
2010/09/07 Javascript
jQuery)扩展jQuery系列之一 模拟alert,confirm(一)
2010/12/04 Javascript
基于jQuery的图片剪切插件
2011/08/03 Javascript
silverlight线程与基于事件驱动javascript引擎(实现轨迹回放功能)
2011/08/09 Javascript
了解一点js的Eval函数
2012/07/26 Javascript
文字不间断滚动(上下左右)实例代码
2013/04/21 Javascript
js加密解密字符串可自定义密码因子
2014/05/13 Javascript
JavaScript获取网页、浏览器、屏幕高度和宽度汇总
2014/12/18 Javascript
JavaScript检查子字符串是否在字符串中的方法
2016/02/03 Javascript
浏览器检测JS代码(兼容目前各大主流浏览器)
2016/02/21 Javascript
分享javascript实现的冒泡排序代码并优化
2016/06/05 Javascript
微信小程序 教程之模块化
2016/10/17 Javascript
JavaScript字符串对象
2017/01/14 Javascript
JavaScript中最常见的三个面试题解析
2017/03/04 Javascript
Vue.js 实现微信公众号菜单编辑器功能(二)
2018/05/08 Javascript
vue+webpack模拟后台数据的示例代码
2018/07/26 Javascript
JavaScript之实现一个简单的Vue示例
2019/01/17 Javascript
nuxt.js添加环境变量,区分项目打包环境操作
2020/11/06 Javascript
[42:32]DOTA2上海特级锦标赛B组资格赛#2 Fnatic VS Spirit第二局
2016/02/27 DOTA
Python数字图像处理之霍夫线变换实现详解
2018/01/12 Python
Django生成PDF文档显示在网页上以及解决PDF中文显示乱码的问题
2019/07/04 Python
用Pelican搭建一个极简静态博客系统过程解析
2019/08/22 Python
Python 脚本拉取 Docker 镜像问题
2019/11/10 Python
keras tensorflow 实现在python下多进程运行
2020/02/06 Python
在CentOS7下安装Python3教程解析
2020/07/09 Python
CSS3 background-image颜色渐变的实现代码
2018/09/13 HTML / CSS
经典c++面试题二
2015/08/14 面试题
什么是托管函数?托管函数有什么用?
2014/06/15 面试题
配置管理计划的主要内容有哪些
2014/06/20 面试题
通信生自我鉴定
2014/01/18 职场文书
家教广告词
2014/03/19 职场文书
2015政治思想表现评语
2015/03/25 职场文书