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 相关文章推荐
Javascript 继承实现例子
Aug 12 Javascript
js数字输入框(包括最大值最小值限制和四舍五入)
Nov 24 Javascript
jQuery中height()方法用法实例
Dec 24 Javascript
Node.js中的缓冲与流模块详细介绍
Feb 11 Javascript
在linux中使用包管理器安装node.js
Mar 13 Javascript
AngularJS基础学习笔记之控制器
May 10 Javascript
基于jQuery实现弹出可关闭遮罩提示框实例代码
Jul 18 Javascript
JavaScript严格模式详解
Jan 16 Javascript
微信小程序的开发范式BeautyWe.js入门详解
Jul 10 Javascript
JavaScript Array对象基本方法详解
Sep 03 Javascript
JavaScript实现图片轮播特效
Oct 23 Javascript
vuex state中的数组变化监听实例
Nov 06 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 spl_autoload_register实现自动加载研究
2011/12/06 PHP
Linux下CoreSeek及PHP扩展模块的安装
2012/09/23 PHP
Zend的AutoLoad机制介绍
2012/09/27 PHP
php session劫持和防范的方法
2013/11/12 PHP
JQUERY复选框CHECKBOX全选,取消全选
2008/08/30 Javascript
浅析js中2个等号与3个等号的区别
2013/08/06 Javascript
分享JavaScript获取网页关闭与取消关闭的事件
2013/12/13 Javascript
JS对象转换为Jquery对象示例
2014/01/26 Javascript
javascript常见用法总结
2014/05/22 Javascript
Javascript实现简单的富文本编辑器附演示
2014/06/16 Javascript
深入浅析JS的数组遍历方法(推荐)
2016/06/15 Javascript
js中scrollTop()方法和scroll()方法用法示例
2016/10/03 Javascript
jQuery中ajax错误调试分析
2016/12/01 Javascript
基于JS实现弹出一个隐藏的div窗口body页面变成灰色并且不可被编辑
2016/12/14 Javascript
jQuery插件echarts实现的循环生成图效果示例【附demo源码下载】
2017/03/04 Javascript
[js高手之路]寄生组合式继承的优势详解
2017/08/28 Javascript
mescroll.js上拉加载下拉刷新组件使用详解
2017/11/13 Javascript
webpack构建的详细流程探底
2018/01/08 Javascript
Vue.js 表单控件操作小结
2018/03/29 Javascript
使用weixin-java-miniapp配置进行单个小程序的配置详解
2019/03/29 Javascript
微信小程序判断用户是否需要再次授权获取个人信息
2019/07/18 Javascript
学习python的几条建议分享
2013/02/10 Python
Python工程师面试题 与Python基础语法相关
2016/01/14 Python
python做量化投资系列之比特币初始配置
2018/01/23 Python
Python实现多级目录压缩与解压文件的方法
2018/09/01 Python
详解python列表生成式和列表生成式器区别
2019/03/27 Python
Tensorflow实现酸奶销量预测分析
2019/07/19 Python
Python Pandas 转换unix时间戳方式
2019/12/07 Python
python搜索算法原理及实例讲解
2020/11/18 Python
Corelle官方网站:购买康宁餐具
2016/11/02 全球购物
Saucony澳大利亚官网:美国跑鞋品牌,运动鞋中的劳斯莱斯
2018/05/05 全球购物
美国球鞋寄卖网站:Stadium Goods
2018/05/09 全球购物
Bally美国官网:经典瑞士鞋履、手袋及配饰奢侈品牌
2018/05/18 全球购物
办公室内勤工作职责
2013/12/11 职场文书
社区科普工作方案
2014/06/03 职场文书
经典导游欢迎词
2015/01/26 职场文书