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实现的自定义的对话框的实现代码
Mar 21 Javascript
js 三级关联菜单效果实例
Aug 13 Javascript
jquery toolbar与网页浮动工具条具体实现代码
Jan 12 Javascript
jquery阻止后续事件只执行第一个事件
Jul 24 Javascript
使用Sticker.js实现贴纸效果
Jan 28 Javascript
jQuery入门基础知识学习指南
Aug 14 Javascript
javascript巧用eval函数组装表单输入项为json对象的方法
Nov 25 Javascript
使用jQuery给input标签设置默认值
Jun 20 Javascript
jQuery实现复制到粘贴板功能
Feb 11 Javascript
最新Javascript程序员面试试题和解题方法
Nov 23 Javascript
深入解析vue 源码目录及构建过程分析
Apr 24 Javascript
vue+express+jwt持久化登录的方法
Jun 14 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
apache+mysql+php+ssl服务器之完全安装攻略
2006/09/05 PHP
解析在zend Farmework下如何创立一个FORM表单
2013/06/28 PHP
php处理带有中文URL的方法
2016/07/11 PHP
PHP面向对象程序设计之类与反射API详解
2016/12/02 PHP
phpstorm 正则匹配删除空行、注释行(替换注释行为空行)
2018/01/21 PHP
jQuery 1.0.4 - New Wave Javascript(js源文件)
2007/01/15 Javascript
jQuery 表格插件整理
2010/04/27 Javascript
深入理解JavaScript系列(6):S.O.L.I.D五大原则之单一职责SRP
2012/01/15 Javascript
探讨JQUERY JSON的反序列化类 using问题的解决方法
2013/12/19 Javascript
JS比较两个时间大小的简单示例代码
2013/12/20 Javascript
常用的JQuery函数及功能小结
2016/03/24 Javascript
JS实现动态表格的添加,修改,删除功能(推荐)
2016/06/15 Javascript
微信小程序 canvas API详解及实例代码
2016/10/08 Javascript
微信小程序 动态绑定数据及动态事件处理
2017/03/14 Javascript
AngularJS中$http使用的简单介绍
2017/03/17 Javascript
jQuery事件_动力节点Java学院整理
2017/07/05 jQuery
vue.js实现只弹一次弹框
2018/01/29 Javascript
vue 中的动态传参和query传参操作
2020/11/09 Javascript
JavaScript中的几种继承方法示例
2020/12/06 Javascript
Python中处理字符串之endswith()方法的使用简介
2015/05/18 Python
python类中super()和__init__()的区别
2016/10/18 Python
python中reduce()函数的使用方法示例
2017/09/29 Python
解决python爬虫中有中文的url问题
2018/05/11 Python
Django中的文件的上传的几种方式
2018/07/23 Python
python3 http提交json参数并获取返回值的方法
2018/12/19 Python
python Kmeans算法原理深入解析
2019/08/23 Python
详解Python中的分支和循环结构
2020/02/11 Python
Django models filter筛选条件详解
2020/03/16 Python
Python实现简单猜数字游戏
2021/02/03 Python
Python调用SMTP服务自动发送Email的实现步骤
2021/02/07 Python
Elizabeth Gage官网:英国最好的珠宝设计之一
2020/09/26 全球购物
开放系统互连参考模型
2016/06/29 面试题
计算机软件专业求职信
2014/06/10 职场文书
2015年财务经理工作总结
2015/05/13 职场文书
Vue项目打包、合并及压缩优化网页响应速度
2021/07/07 Vue.js
Spring-cloud Config Server的3种配置方式
2021/09/25 Java/Android