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 相关文章推荐
JavaScript 解析读取XML文档 实例代码
Jul 07 Javascript
javascript 循环读取JSON数据的代码
Jul 17 Javascript
扩展js对象数组的OrderByAsc和OrderByDesc方法实现思路
May 17 Javascript
解析使用JS 清空File控件的路径值
Jul 08 Javascript
JavaScript:Div层拖动效果实例代码
Aug 06 Javascript
纯js简单日历实现代码
Oct 05 Javascript
jqueyr判断checkbox组的选中(示例代码)
Nov 08 Javascript
JavaScript如何实现对数字保留两位小数一位自动补零
Dec 18 Javascript
Vue精简版风格指南(推荐)
Jan 30 Javascript
JavaScript中import用法总结
Jan 20 Javascript
使用layui实现的左侧菜单栏以及动态操作tab项方法
Sep 10 Javascript
vue中的 $slot 获取插槽的节点实例
Nov 12 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里的单例类写法实例
2015/06/25 PHP
深入解析PHP的Yii框架中的event事件机制
2016/03/17 PHP
JavaScript面向对象编程
2008/03/02 Javascript
js实现字符串的16进制编码不加密
2014/04/25 Javascript
jquery实现在页面加载的时自动为日期插件添加当前日期
2014/08/20 Javascript
node.js中的fs.realpathSync方法使用说明
2014/12/16 Javascript
jquery中animate的stop()方法作用实例分析
2015/01/30 Javascript
7个去伪存真的JavaScript面试题
2016/01/07 Javascript
BootStrap中Table分页插件使用详解
2016/10/09 Javascript
利用jQuery.Validate异步验证用户名是否存在(推荐)
2016/12/09 Javascript
js中toString()和String()区别详解
2017/03/23 Javascript
vue-router 实现导航守卫(路由卫士)的实例代码
2018/09/02 Javascript
JS实现图片切换效果
2018/11/17 Javascript
vue中eslintrc.js配置最详细介绍
2018/12/21 Javascript
vue学习笔记之Vue中css动画原理简单示例
2020/02/29 Javascript
Vue-cli打包后部署到子目录下的路径问题说明
2020/09/02 Javascript
[49:58]完美世界DOTA2联赛PWL S3 Magma vs DLG 第一场 12.18
2020/12/19 DOTA
Python 分析Nginx访问日志并保存到MySQL数据库实例
2014/03/13 Python
Python实现KNN邻近算法
2021/01/28 Python
python编程使用selenium模拟登陆淘宝实例代码
2018/01/25 Python
更改Python的pip install 默认安装依赖路径方法详解
2018/10/27 Python
python 批量修改 labelImg 生成的xml文件的方法
2019/09/09 Python
django API 中接口的互相调用实例
2020/04/01 Python
使用pymysql查询数据库,把结果保存为列表并获取指定元素下标实例
2020/05/15 Python
Python子进程subpocess原理及用法解析
2020/07/16 Python
举例说明类变量和实例变量的区别
2016/06/30 面试题
会计职业生涯规划范文
2014/01/04 职场文书
日语专业个人求职信范文
2014/02/02 职场文书
学校联谊活动方案
2014/02/15 职场文书
大学生党员批评与自我批评范文
2014/10/14 职场文书
工程承包协议书
2014/10/20 职场文书
给老师的感谢信
2015/01/20 职场文书
小升初自荐信怎么写
2015/03/26 职场文书
CSS3点击按钮圆形进度打钩效果的实现代码
2021/03/30 HTML / CSS
Android自定义双向滑动控件
2022/04/19 Java/Android
Zabbix对Kafka topic积压数据监控的问题(bug优化)
2022/07/07 Servers