AngularJS使用拦截器实现的loading功能完整实例


Posted in Javascript onMay 17, 2017

本文实例讲述了AngularJS使用拦截器实现的loading功能。分享给大家供大家参考,具体如下:

<!DOCTYPE html>
<html lang="zh-CN" ng-app="myApp">
 <head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <script src="jquery.min.js"></script>
  <script src="angular.js"></script>
  <link rel="stylesheet" href="bootstrap.min.css" rel="external nofollow" >
  <style type="text/css">
    .mask-loading .loading-icon {
      -webkit-animation: rotate 1s linear infinite;
      -o-animation: rotate 1s linear infinite;
      animation: rotate 1s linear infinite;
      position: absolute;
      top: 50%;
      left: 50%;
      width: 30px;
      height: 30px;
      margin: -20px 0 0 -20px;
      border-width: 5px;
      border-style: solid;
      border-color: #37c3aa #37c3aa #fff #fff;
      opacity: .9;
      border-radius: 20px;
    }
    @-webkit-keyframes rotate{
     0% {-webkit-transform:rotate(0)}
     100% {-webkit-transform:rotate(360deg)}
    }
    @keyframes rotate{
     0% {transform:rotate(0)}
     100% {transform:rotate(360deg)}
    }
    .mask-loading {
     position:fixed;
     top:0;
     right:0;
     bottom:0;
     left:0;
     background:0 0;
     z-index:9999;
    }
  </style>
  <script type="text/javascript" src="angular-ui-router.js"></script>
  <script type="text/javascript" src="angular-animate.js"></script>
  <script type="text/javascript">
   var myApp = angular.module('myApp', ['ui.router', 'ngAnimate']);
   myApp.config(["$stateProvider", "$httpProvider", '$urlRouterProvider', function ($stateProvider, $httpProvider, $urlRouterProvider) {
     $stateProvider
     .state('a', {
       url: '/a',
       templateUrl: "loadpath/a.html",
       controller: "aController"
     })
     .state('b', {
       url: '/b',
       templateUrl: "loadpath/b.html",
       controller: "bController"
     });
     $urlRouterProvider.otherwise('/');
     $httpProvider.interceptors.push('myInterceptor');
   }]);
   //loading
   myApp.factory('myInterceptor', ["$rootScope", function ($rootScope) {
     var timestampMarker = {
       request: function (config) {
         $rootScope.loading = true;
         return config;
       },
       response: function (response) {
        $rootScope.loading = false;
         return response;
       }
     };
     return timestampMarker;
   }]);
   myApp.controller('aController', function($scope) {
    $scope.page = "a";
   });
   myApp.controller('bController', function($scope) {
    $scope.page = "b";
   });
  </script>
 </head>
 <body>
  <h1>index</h1>
  <div id="mask-loading" class="mask-loading" ng-if="loading" style="background-color: rgba(0, 0, 0, 0.17);">
    <div class="loading-icon"></div>
  </div>
  <div ui-view></div>
  <a ui-sref="a">go to a.html</a>
  <br/>
  <a ui-sref="b">go to b.html</a>
 </body>
</html>

希望本文所述对大家AngularJS程序设计有所帮助。

Javascript 相关文章推荐
Jquery Ajax的Get方式时需要注意URL地方
Apr 07 Javascript
每天一篇javascript学习小结(String对象)
Nov 18 Javascript
jQuery实现图片预加载效果
Nov 27 Javascript
解析Node.js基于模块和包的代码部署方式
Feb 16 Javascript
理解javascript定时器中的单线程
Feb 23 Javascript
Bootstrap布局方式详解
May 27 Javascript
全面解析Bootstrap中scrollspy(滚动监听)的使用方法
Jun 06 Javascript
Asp.Net之JS生成分页条的方法
Nov 23 Javascript
AngularJS使用ng-repeat和ng-if实现数据的删选显示效果示例【适用于表单数据的显示】
Dec 13 Javascript
深入了解javascript 数组的sort方法
Jun 01 Javascript
JS数组中对象去重操作示例
Jun 04 Javascript
原生js+ajax分页组件
Jan 30 Javascript
微信小程序城市定位的实现实例(获取当前所在国家城市信息)
May 17 #Javascript
微信小程序如何获知用户运行小程序的场景教程
May 17 #Javascript
bootstrap轮播图示例代码分享
May 17 #Javascript
bootstrap警告框示例代码分享
May 17 #Javascript
微信小程序中做用户登录与登录态维护的实现详解
May 17 #Javascript
Angular获取手机验证码实现移动端登录注册功能
May 17 #Javascript
原生JS实现层叠轮播图
May 17 #Javascript
You might like
解析将多维数组转换为支持curl提交的一维数组格式
2013/07/08 PHP
在Linux系统的服务器上隐藏PHP版本号的方法
2015/06/06 PHP
php ajax实现文件上传进度条
2016/03/29 PHP
Zend Framework使用Zend_Loader组件动态加载文件和类用法详解
2016/12/09 PHP
JavaScript中null与undefined分析
2009/07/25 Javascript
JSQL 基于客户端的成绩统计实现方法
2010/05/05 Javascript
js比较和逻辑运算符的介绍
2013/03/10 Javascript
JavaScript设计模式之适配器模式介绍
2014/12/28 Javascript
Java遍历集合方法分析(实现原理、算法性能、适用场合)
2016/04/25 Javascript
JS中的数组方法笔记整理
2016/07/26 Javascript
javascript 正则表达式去空行方法
2017/01/24 Javascript
详解闭包解决jQuery中AJAX的外部变量问题
2017/02/22 Javascript
JS简单封装的图片无缝滚动效果示例【测试可用】
2017/03/22 Javascript
js布局实现单选按钮控件
2020/01/17 Javascript
webpack安装配置与常见使用过程详解(结合vue)
2020/06/01 Javascript
浅谈python for循环的巧妙运用(迭代、列表生成式)
2017/09/26 Python
python列表生成式与列表生成器的使用
2018/02/23 Python
python目标检测给图画框,bbox画到图上并保存案例
2020/03/10 Python
Python绘图之柱形图绘制详解
2020/07/28 Python
CSS3 @keyframes简单动画实现
2018/02/24 HTML / CSS
REISS英国官网:伦敦High Street最受欢迎品牌
2016/12/21 全球购物
MYSQL支持事务吗
2013/08/09 面试题
PyQt 如何创建自定义QWidget
2021/03/24 Python
商务英语大学生职业生涯规划书范文
2014/01/01 职场文书
高中生学期学习自我评价
2014/02/24 职场文书
农林环境专业求职信
2014/03/13 职场文书
岗位明星事迹材料
2014/05/18 职场文书
工程部岗位职责
2015/02/10 职场文书
2015年关爱留守儿童工作总结
2015/05/22 职场文书
2015年团委副书记工作总结
2015/07/23 职场文书
新人入职感言
2015/07/31 职场文书
Python包argparse模块常用方法
2021/06/04 Python
基于JavaScript实现省市联动效果
2021/06/22 Javascript
MySQL的存储函数与存储过程的区别解析
2022/04/08 MySQL
Linux中各个目录的作用与内容
2022/06/28 Servers
vue递归实现树形组件
2022/07/15 Vue.js