angularjs使用directive实现分页组件的示例

发布时间 - 2026-01-10 22:54:38    点击率:

闲来没事,分享下项目中自己写的分页组件。来不及了,直接上车。

效果:

输入框可任意输入,并会自动提交到该页

依赖项:

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>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# angularjs实现分页  # angularjs中实现分页  # angularjs  # directive分页  # Vue.js分页组件实现:diVuePagination的使用详解  # vuejs2.0实现分页组件使用$emit进行事件监听数据传递的方法  # Reactjs实现通用分页组件的实例代码  # 原生js编写基于面向对象的分页组件  # Vue.js实现一个自定义分页组件vue-paginaiton  # 使用vue.js制作分页组件  # 基于Vue.js的表格分页组件  # js多功能分页组件layPage使用方法详解  # 分享一个自己写的简单的javascript分页组件  # JavaScript分页组件使用方法详解  # 分页  # 当前页  # 这是我  # 大可不必  # 该页  # 大家多多  # 输入框  # 闲来  # 并会  # 来不及了  # 可任意  # flip  # horizontal  # type  # text  # span  # input  # fa  # firstPage  # nofollow 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 香港服务器如何优化才能显著提升网站加载速度?  EditPlus中的正则表达式 实战(2)  Laravel如何使用Service Provider服务提供者_Laravel依赖注入与容器绑定【深度】  Windows10如何删除恢复分区_Win10 Diskpart命令强制删除分区  Laravel如何配置.env文件管理环境变量_Laravel环境变量使用与安全管理  Laravel如何实现邮箱地址验证功能_Laravel邮件验证流程与配置  Laravel怎么配置.env环境变量_Laravel生产环境敏感数据保护与读取【方法】  如何自定义safari浏览器工具栏?个性化设置safari浏览器界面教程【技巧】  如何在香港免费服务器上快速搭建网站?  Win11搜索栏无法输入_解决Win11开始菜单搜索没反应问题【技巧】  Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册  如何在IIS7中新建站点?详细步骤解析  Laravel如何使用Passport实现OAuth2?(完整配置步骤)  如何在腾讯云服务器上快速搭建个人网站?  Laravel Blade模板引擎语法_Laravel Blade布局继承用法  Laravel如何发送邮件和通知_Laravel邮件与通知系统发送步骤  Laravel如何使用Livewire构建动态组件?(入门代码)  Linux虚拟化技术教程_KVMQEMU虚拟机安装与调优  免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?  齐河建站公司:营销型网站建设与SEO优化双核驱动策略  潮流网站制作头像软件下载,适合母子的网名有哪些?  如何在景安服务器上快速搭建个人网站?  php结合redis实现高并发下的抢购、秒杀功能的实例  HTML5空格在Angular项目里怎么处理_Angular中空格的渲染问题【详解】  如何在局域网内绑定自建网站域名?  网站页面设计需要考虑到这些问题  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  Laravel distinct去重查询_Laravel Eloquent去重方法  深入理解Android中的xmlns:tools属性  如何在IIS中新建站点并解决端口绑定冲突?  如何快速搭建高效服务器建站系统?  JavaScript Ajax实现异步通信  美食网站链接制作教程视频,哪个教做美食的网站比较专业点?  佛山网站制作系统,佛山企业变更地址网上办理步骤?  Laravel如何将应用部署到生产服务器_Laravel生产环境部署流程  网站制作企业,网站的banner和导航栏是指什么?  如何制作一个表白网站视频,关于勇敢表白的小标题?  详解阿里云nginx服务器多站点的配置  Laravel如何配置和使用缓存?(Redis代码示例)  JavaScript如何实现继承_有哪些常用方法  Laravel怎么实现软删除SoftDeletes_Laravel模型回收站功能与数据恢复【步骤】  黑客如何通过漏洞一步步攻陷网站服务器?  如何快速搭建虚拟主机网站?新手必看指南  中国移动官方网站首页入口 中国移动官网网页登录  UC浏览器如何设置启动页 UC浏览器启动页设置方法  标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?  html5如何设置样式_HTML5样式设置方法与CSS应用技巧【教程】  VIVO手机上del键无效OnKeyListener不响应的原因及解决方法  如何在服务器上三步完成建站并提升流量?  Laravel怎么使用Session存储数据_Laravel会话管理与自定义驱动配置【详解】