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 相关文章推荐
JS Array对象入门分析
Oct 30 Javascript
iframe 异步加载技术及性能分析
Jul 19 Javascript
javascript学习笔记(十二) RegExp类型介绍
Jun 20 Javascript
JS中的substring和substr函数的区别说明
May 07 Javascript
jqGrid增加时--判断开始日期与结束日期(实例解析)
Nov 08 Javascript
jquery ajax jsonp跨域调用实例代码
Dec 11 Javascript
jQuery中:has选择器用法实例
Dec 30 Javascript
JS常见疑难点分析之match,charAt,charCodeAt,map,search用法分析
Dec 25 Javascript
Vue瀑布流插件的使用示例
Sep 19 Javascript
vue实现表单录入小案例
Sep 27 Javascript
基于Angular 8和Bootstrap 4实现动态主题切换的示例代码
Feb 11 Javascript
JavaScript this关键字指向常用情况解析
Sep 02 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
简单实用的PHP防注入类实例
2014/12/05 PHP
PHP生成随机密码方法汇总
2015/08/27 PHP
jquery 事件执行检测代码
2009/12/09 Javascript
jquery下将选择的checkbox的id组成字符串的方法
2010/11/28 Javascript
JavaScript编写点击查看大图的页面半透明遮罩层效果实例
2016/05/09 Javascript
浅谈JS之tagNaem和nodeName
2016/09/13 Javascript
Javascript数组循环遍历之forEach详解
2016/11/07 Javascript
Vue.js使用v-show和v-if的注意事项
2016/12/13 Javascript
基于vue.js路由参数的实例讲解——简单易懂
2017/09/07 Javascript
基于vue2.0动态组件及render详解
2018/03/17 Javascript
JavaScript常用截取字符串的三种方式用法区别实例解析
2018/05/15 Javascript
详解ECMAScript typeof用法
2018/07/25 Javascript
JavaScript实现淘宝京东6位数字支付密码效果
2018/08/18 Javascript
vue init webpack 建vue项目报错的解决方法
2018/09/29 Javascript
weui上传多图片,压缩,base64编码的示例代码
2020/06/22 Javascript
python实现BackPropagation算法
2017/12/14 Python
python3 读写文件换行符的方法
2018/04/09 Python
Numpy数据类型转换astype,dtype的方法
2018/06/09 Python
浅谈Scrapy网络爬虫框架的工作原理和数据采集
2019/02/07 Python
pycharm访问mysql数据库的方法步骤
2019/06/18 Python
seek引发的python文件读写的问题及解决
2019/07/26 Python
pytorch实现对输入超过三通道的数据进行训练
2020/01/15 Python
使用Tensorboard工具查看Loss损失率
2020/02/15 Python
Python3 hashlib密码散列算法原理详解
2020/03/30 Python
django Layui界面点击弹出对话框并请求逻辑生成分页的动态表格实例
2020/05/12 Python
LightInTheBox西班牙站点:全球商品在线采购
2016/09/22 全球购物
英国Flybe航空官网:欧洲最大的独立支线廉价航空公司
2019/07/15 全球购物
《小壁虎借尾巴》教学反思
2014/02/16 职场文书
《诺贝尔》教学反思
2014/02/17 职场文书
七一党日活动总结
2014/07/08 职场文书
酒店端午节活动方案
2014/08/26 职场文书
我是一名护士演讲稿
2014/08/28 职场文书
好好学习保证书
2015/02/26 职场文书
2015应届毕业生自荐信范文
2015/03/05 职场文书
2015年司法局工作总结
2015/05/22 职场文书
酒桌上的祝酒词
2015/08/12 职场文书