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 相关文章推荐
强制设为首页代码
Jun 19 Javascript
JavaScript中数据结构与算法(三):链表
Jun 19 Javascript
AngularJS进行性能调优的7个建议
Dec 28 Javascript
jQuery DataTables插件自定义Ajax分页实例解析
Apr 28 Javascript
sencha ext js 6 快速入门(必看)
Jun 01 Javascript
angular.js之路由的选择方法
Sep 24 Javascript
Javascript中字符串replace方法的第二个参数探究
Dec 05 Javascript
JS实现获取来自百度,Google,soso,sogou关键词的方法
Dec 21 Javascript
js实现分页功能
May 24 Javascript
JS实现音乐导航特效
Jan 06 Javascript
Js视频播放器插件Video.js使用方法详解
Feb 04 Javascript
JavaScript中的this原理及6种常见使用场景详解
Feb 14 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 判断字符串中是否包含html标签
2014/02/17 PHP
php中使用array_filter()函数过滤空数组的实现代码
2014/08/19 PHP
PHP加密解密字符串汇总
2015/04/26 PHP
Zend Framework教程之Zend_Db_Table表关联实例详解
2016/03/23 PHP
PHP实现深度优先搜索算法(DFS,Depth First Search)详解
2017/09/16 PHP
php判断目录存在的简单方法
2019/09/26 PHP
javascript TextArea动态显示剩余字符
2008/10/22 Javascript
让firefox支持IE的一些方法的javascript扩展函数代码
2010/01/02 Javascript
jQuery AJAX 调用WebService实现代码
2010/03/24 Javascript
jQuery效果 slideToggle() 方法(在隐藏和显示之间切换)
2011/06/28 Javascript
js对象的复制继承实例
2015/01/10 Javascript
如何实现chrome浏览器关闭页面时弹出“确定要离开此面吗?”
2015/03/05 Javascript
自定义百度分享的分享按钮
2015/03/18 Javascript
解决js函数闭包内存泄露问题的办法
2016/01/25 Javascript
nodejs读取并去重excel文件
2018/04/22 NodeJs
详解Require.js与Sea.js的区别
2018/08/05 Javascript
JS解析后台返回的JSON格式数据实例
2018/08/06 Javascript
vue webpack打包后图片路径错误的完美解决方法
2018/12/07 Javascript
浅谈react-router@4.0 使用方法和源码分析
2019/06/04 Javascript
Python实现Sqlite将字段当做索引进行查询的方法
2016/07/21 Python
利用Python开发微信支付的注意事项
2016/08/19 Python
Python全排列操作实例分析
2018/07/24 Python
python图形界面开发之wxPython树控件使用方法详解
2020/02/24 Python
python 的numpy库中的mean()函数用法介绍
2020/03/03 Python
Python在终端通过pip安装好包以后在Pycharm中依然无法使用的问题(三种解决方案)
2020/03/10 Python
Windows 下更改 jupyterlab 默认启动位置的教程详解
2020/05/18 Python
Python openpyxl模块实现excel读写操作
2020/06/30 Python
经验丰富程序员才知道的8种高级Python技巧
2020/07/27 Python
浅析pandas随机排列与随机抽样
2021/01/22 Python
俄罗斯香水在线商店:AromaCode
2019/12/04 全球购物
医务工作者先进事迹材料
2014/01/26 职场文书
幼儿园毕业教师感言
2014/02/21 职场文书
中国好声音华少广告词
2014/03/17 职场文书
学习雷锋活动总结
2014/04/29 职场文书
党员四风问题对照检查材料思想汇报
2014/09/16 职场文书
小学科学教学计划
2015/01/21 职场文书