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 静态对象和构造函数的使用和公私问题
Mar 02 Javascript
图片翻转效果具体实现代码
Jan 09 Javascript
javascript 小数取整简单实现方式
May 30 Javascript
javascript setinterval 的正确语法如何书写
Jun 17 Javascript
javascript中with()方法的语法格式及使用
Aug 04 Javascript
JS函数this的用法实例分析
Feb 05 Javascript
JavaScript 用fetch 实现异步下载文件功能
Jul 21 Javascript
mpvue 单文件页面配置详解
Dec 02 Javascript
微信小程序如何利用getCurrentPages进行页面传值
Jul 01 Javascript
vue路由守卫,限制前端页面访问权限的例子
Nov 11 Javascript
浅谈javascript如何获取文件后缀名
Aug 07 Javascript
浅析微信小程序自定义日历组件及flex布局最后一行对齐问题
Oct 29 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
DISCUZ在win2003环境下 Unable to access ./include/common.inc.php in... 的问题终极解决方案
2011/11/21 PHP
php将gd生成的图片缓存到memcache的小例子
2013/06/05 PHP
分享10段PHP常用代码
2015/11/11 PHP
PHP数组操作简单案例分析
2016/10/15 PHP
php app支付宝回调(异步通知)详解
2018/07/25 PHP
PHP中关于php.ini参数优化详解
2020/02/28 PHP
JavaScript中SQL语句的应用实现
2010/05/04 Javascript
js 分页全选或反选标识实现代码
2011/08/09 Javascript
JS 实现导航栏悬停效果(续)
2013/09/24 Javascript
DOM节点删除函数removeChild()用法实例
2015/01/12 Javascript
jQuery中$(function() {});问题详解
2015/08/10 Javascript
JS实现可拖曳、可关闭的弹窗效果
2015/09/26 Javascript
基于jQuery实现的仿百度首页滑动选项卡效果代码
2015/11/16 Javascript
JavaScript数值千分位格式化的两种简单实现方法
2016/08/01 Javascript
JavaScript比较当前时间是否在指定时间段内的方法
2016/08/02 Javascript
详解nodejs微信jssdk后端接口
2017/05/25 NodeJs
js模块加载方式浅析
2017/08/12 Javascript
Extjs 中的 Treepanel 实现菜单级联选中效果及实例代码
2017/08/22 Javascript
详解Vue用自定义指令完成一个下拉菜单(select组件)
2017/10/31 Javascript
vue中路由参数传递可能会遇到的坑
2017/12/07 Javascript
详解基于vue-cli3快速发布一个fullpage组件
2019/03/08 Javascript
JS实现横向轮播图(中级版)
2020/01/18 Javascript
Vue开发中遇到的跨域问题及解决方法
2020/02/11 Javascript
[04:47]DOTA2-潍坊风行电子俱乐部探秘
2014/08/08 DOTA
[01:15:56]2018DOTA2亚洲邀请赛3月30日 小组赛A组 TNC VS Newbee
2018/03/31 DOTA
Ubuntu 14.04+Django 1.7.1+Nginx+uwsgi部署教程
2014/11/18 Python
Django利用cookie保存用户登录信息的简单实现方法
2019/05/27 Python
Python 获取numpy.array索引值的实例
2019/12/06 Python
python线程优先级队列知识点总结
2021/02/28 Python
运动会广播稿500字
2014/01/28 职场文书
2014年协会工作总结
2014/11/22 职场文书
委托书的样本
2015/01/28 职场文书
农民工工资支付承诺书
2015/05/04 职场文书
2015年基层党支部工作总结
2015/05/21 职场文书
React 高阶组件HOC用法归纳
2021/06/13 Javascript
一篇文章带你深入了解Mysql触发器
2021/08/02 MySQL