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高级程序设计(第3版)学习笔记7 js函数(上)
Oct 11 Javascript
setInterval()和setTimeout()的用法和区别示例介绍
Nov 17 Javascript
JavaScript实现可拖拽的拖动层Div实例
Aug 05 Javascript
jQuery实现简洁的导航菜单效果
Nov 23 Javascript
easyui messager alert 三秒后自动关闭提示的实例
Nov 07 Javascript
详解Vue.js动态绑定class
Dec 20 Javascript
详解在Vue中如何使用axios跨域访问数据
Jul 07 Javascript
angularjs实现分页和搜索功能
Jan 03 Javascript
Vue.js分页组件实现:diVuePagination的使用详解
Jan 10 Javascript
react以create-react-app为基础创建项目
Mar 14 Javascript
layui table 复选框跳页后再回来保持原来选中的状态示例
Oct 26 Javascript
js DOM的事件常见操作实例详解
Dec 16 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
dede3.1分页文字采集过滤规则详说(图文教程)
2007/04/03 PHP
PHP开发中的错误收集,不定期更新。
2011/02/03 PHP
2个比较经典的PHP加密解密函数分享
2014/07/01 PHP
php制作简单模版引擎
2016/04/07 PHP
Thinkphp和onethink实现微信支付插件
2016/04/13 PHP
php利用fsockopen GET/POST提交表单及上传文件
2017/05/22 PHP
JavaScript触发器详解
2007/03/10 Javascript
js改变img标签的src属性在IE下没反应的解决方法
2013/07/23 Javascript
javascript贪吃蛇完整版(源码)
2013/12/09 Javascript
javascript event在FF和IE的兼容传参心得(绝对好用)
2014/07/10 Javascript
javascript中eval函数用法分析
2015/04/25 Javascript
用Node提供静态文件服务的方法
2018/07/06 Javascript
JavaScript原型链与继承操作实例总结
2018/08/24 Javascript
用vue-cli开发vue时的代理设置方法
2018/09/20 Javascript
微信小程序实现图片翻转效果的实例代码
2019/09/20 Javascript
解决elementUI 切换tab后 el_table 固定列下方多了一条线问题
2020/07/19 Javascript
JS实现拖拽元素时与另一元素碰撞检测
2020/08/27 Javascript
JavaScript array常用方法代码实例详解
2020/09/02 Javascript
javascript自定义加载loading效果
2020/09/15 Javascript
Python中关键字is与==的区别简述
2014/07/31 Python
python实现从字符串中找出字符1的位置以及个数的方法
2014/08/25 Python
python提取内容关键词的方法
2015/03/16 Python
Python找出文件中使用率最高的汉字实例详解
2015/06/03 Python
python 实现在txt指定行追加文本的方法
2018/04/29 Python
python中的json总结
2018/10/11 Python
python json 递归打印所有json子节点信息的例子
2020/02/27 Python
Python Selenium 设置元素等待的三种方式
2020/03/18 Python
python获取响应某个字段值的3种实现方法
2020/04/30 Python
Woolworth官网:澳洲第一大超市
2017/06/25 全球购物
毕业自荐信
2013/12/16 职场文书
高中运动会广播稿
2014/01/21 职场文书
便利店投资创业计划书
2014/02/08 职场文书
国家奖学金获奖感言
2014/08/16 职场文书
婚礼答谢词
2015/01/04 职场文书
基于Python的EasyGUI学习实践
2021/05/07 Python
Redis高可用集群redis-cluster详解
2022/03/20 Redis