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 相关文章推荐
jQuery 打造动态渐变按钮 详细图文教程
Apr 25 Javascript
Confirmer JQuery确认对话框组件
Jun 09 Javascript
aspx中利用js实现确认删除代码
Jul 22 Javascript
JavaScript/jQuery 表单美化插件小结
Feb 14 Javascript
js自定义事件及事件交互原理概述(一)
Feb 01 Javascript
jQuery下的动画处理总结
Oct 10 Javascript
简单的js表单验证函数
Oct 28 Javascript
js换图片效果可进行定时操作
Jun 09 Javascript
js实现仿网易点击弹出提示同时背景变暗效果
Aug 13 Javascript
JavaScript使用Range调色及透明度实例
Sep 25 Javascript
详解Webpack+Babel+React开发环境的搭建的方法步骤
Jan 09 Javascript
基于游标的分页接口实现代码示例
Nov 12 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
一个基于PDO的数据库操作类(新) 一个PDO事务实例
2011/07/03 PHP
PHP Class&amp;Object -- 解析PHP实现二叉树
2013/06/25 PHP
php使用iconv中文截断问题的解决方法
2015/02/11 PHP
PHP查找数值数组中不重复最大和最小的10个数的方法
2015/04/20 PHP
Symfony的安装和配置方法
2016/03/17 PHP
FleaPHP框架数据库查询条件($conditions)写法总结
2016/03/19 PHP
JavaScript中的setMilliseconds()方法使用详解
2015/06/11 Javascript
jQuery原型属性和原型方法详解
2015/07/07 Javascript
js实现搜索框关键字智能匹配代码
2020/03/26 Javascript
浅谈时钟的生成(js手写简洁代码)
2016/08/20 Javascript
微信小程序 绘图之饼图实现
2016/10/24 Javascript
Windows系统下安装Node.js的步骤图文详解
2016/11/15 Javascript
学习vue.js计算属性
2016/12/03 Javascript
jQuery ajax的功能实现方法详解
2017/01/06 Javascript
js仿搜狐视频记录片列表展示效果
2020/05/30 Javascript
纯js三维数组实现三级联动效果
2017/02/07 Javascript
js for循环倒序输出数组元素的实例
2017/03/01 Javascript
vue 使某个组件不被 keep-alive 缓存的方法
2018/09/21 Javascript
vue axios封装及API统一管理的方法
2019/04/18 Javascript
关于ligerui子页面关闭后,父页面刷新,重新加载的方法
2019/09/27 Javascript
python基础教程之获取本机ip数据包示例
2014/02/10 Python
python统计日志ip访问数的方法
2015/07/06 Python
pandas数据框,统计某列数据对应的个数方法
2018/04/11 Python
python实现最小二乘法线性拟合
2019/07/19 Python
django的分页器Paginator 从django中导入类
2019/07/25 Python
Python猴子补丁知识点总结
2020/01/05 Python
BookOutlet加拿大:在网上书店购买廉价折扣图书和小说
2018/10/05 全球购物
美国克罗格超市在线购物:Kroger
2019/06/21 全球购物
同步和异步有何异同,在什么情况下分别使用他们?举例说明
2014/02/27 面试题
少先队学雷锋活动月总结
2014/03/09 职场文书
校庆筹备方案
2014/03/30 职场文书
十佳少先队员演讲稿
2014/09/12 职场文书
工作检讨书怎么写
2015/01/23 职场文书
法律进社区活动总结
2015/05/07 职场文书
SQL 聚合、分组和排序
2021/11/11 MySQL
Android超详细讲解组件ScrollView的使用
2022/03/31 Java/Android