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语法着色引擎(demo及打包文件下载)
Jun 13 Javascript
jQuery Pagination Ajax分页插件(分页切换时无刷新与延迟)中文翻译版
Jan 11 Javascript
jquery mobile实现拨打电话功能的几种方法
Aug 05 Javascript
通过Javascript读取本地Excel文件内容的代码示例
Apr 08 Javascript
javascript实现rgb颜色转换成16进制格式
Jul 10 Javascript
indexedDB bootstrap angularjs之 MVC DOMO (应用示例)
Jun 20 Javascript
js中创建对象的几种方式
Feb 05 Javascript
简单实现jQuery手风琴效果
Aug 18 jQuery
从vue源码解析Vue.set()和this.$set()
Aug 30 Javascript
详解微信小程序实现跑马灯效果(附完整代码)
Apr 29 Javascript
vue实现简单计算商品价格
Sep 14 Javascript
VUE和Antv G6实现在线拓扑图编辑操作
Oct 28 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
新的一年,新的期待:DC在2020年的四部动画电影
2020/01/01 欧美动漫
PHP面向对象编程快速入门
2006/10/09 PHP
PHP判断字符串长度的两种方法很实用
2015/09/22 PHP
php生成二维码不保存服务器还有下载功能的实现代码
2018/08/09 PHP
让Laravel API永远返回JSON格式响应的方法示例
2018/09/05 PHP
JavaScript去除空格的几种方法
2006/10/03 Javascript
Jquery中增加参数与Json转换代码
2009/11/20 Javascript
javascript encodeURI和encodeURIComponent的比较
2010/04/03 Javascript
关于Jqzoom的使用心得 jquery放大镜效果插件
2010/04/12 Javascript
JQuery跨Iframe选择实现代码
2010/08/19 Javascript
基于jquery的滑动样例代码
2010/11/20 Javascript
javascript 按键事件(兼容各浏览器)
2013/12/20 Javascript
第二次聊一聊JS require.js模块化工具的基础知识
2016/04/17 Javascript
node.js请求HTTPS报错:UNABLE_TO_VERIFY_LEAF_SIGNATURE\的解决方法
2016/12/18 Javascript
如何正确理解javascript的模块化
2017/03/02 Javascript
详解vue.js全局组件和局部组件
2017/04/10 Javascript
JavaScript利用fetch实现异步请求的方法实例
2017/07/26 Javascript
Moment.js实现多个同时倒计时
2019/08/26 Javascript
VUE实现自身整体组件销毁的示例代码
2020/01/13 Javascript
javascript使用Blob对象实现的下载文件操作示例
2020/04/18 Javascript
Vue实现一种简单的无限循环滚动动画的示例
2021/01/10 Vue.js
Python使用设计模式中的责任链模式与迭代器模式的示例
2016/03/02 Python
python通过paramiko复制远程文件及文件目录到本地
2019/04/30 Python
python实现大文本文件分割
2019/07/22 Python
解决python flask中config配置管理的问题
2019/07/26 Python
PyTorch 普通卷积和空洞卷积实例
2020/01/07 Python
python中怎么表示空值
2020/06/19 Python
详解CSS3伸缩布局盒模型Flex布局
2018/08/20 HTML / CSS
css3.0新属性效果在ie下的解决方案
2010/05/10 HTML / CSS
纯css3实现照片墙效果
2014/12/26 HTML / CSS
CSS3 实现倒计时效果
2020/11/25 HTML / CSS
C语言笔试题
2014/09/04 面试题
静态变量和实例变量的区别
2015/07/07 面试题
学生不参加考试检讨书
2015/02/19 职场文书
pytorch加载预训练模型与自己模型不匹配的解决方案
2021/05/13 Python
Mysql案例刨析事务隔离级别
2021/09/25 MySQL