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 跳转页面延迟2种方法
Mar 29 Javascript
点击显示指定元素隐藏其他同辈元素的方法
Feb 19 Javascript
jQuery操作表单常用控件方法小结
Mar 23 Javascript
jQuery插件slider实现拖动滑块选取价格范围
Apr 30 Javascript
Javascript控制div属性动态变化实例分析
Oct 08 Javascript
利用jqprint插件打印页面内容的实现方法
Jan 09 Javascript
vue 中filter的多种用法
Apr 26 Javascript
详解如何用VUE写一个多用模态框组件模版
Sep 27 Javascript
Vue.js 事件修饰符的使用教程
Nov 01 Javascript
vue自定义指令实现方法详解
Feb 11 Javascript
vue滚动tab跟随切换效果
Jun 29 Javascript
Vue实现鼠标经过文字显示悬浮框效果的示例代码
Oct 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
php的api数据接口书写实例(推荐)
2016/09/22 PHP
window.showModalDialog使用手册
2007/01/11 Javascript
js中将URL中的参数提取出来作为对象的实现代码
2011/08/16 Javascript
jquery创建一个新的节点对象(自定义结构/内容)的好方法
2013/01/21 Javascript
jQuery源码分析之Callbacks详解
2015/03/13 Javascript
JavaScript模拟可展开、拖动与关闭的聊天窗口实例
2015/05/12 Javascript
jQuery实用技巧必备(中)
2015/11/03 Javascript
jQuery实现返回顶部功能
2016/02/23 Javascript
浅谈regExp的test方法取得的值变化的原因及处理方法
2017/03/01 Javascript
阿里大于短信验证码node koa2的实现代码(最新)
2017/09/07 Javascript
深入理解与使用keep-alive(配合router-view缓存整个路由页面)
2018/09/25 Javascript
angularjs获取到My97DatePicker选中的值方法
2018/10/02 Javascript
JavaScript实现数字前补“0”的五种方法示例
2019/01/03 Javascript
express框架下使用session的方法
2019/07/31 Javascript
layui加载数据显示loading加载完成loading消失的实例代码
2019/09/23 Javascript
15 分钟掌握vue-next响应式原理
2019/10/13 Javascript
微信小程序实现按字母排列选择城市功能
2019/11/25 Javascript
vue 使用post/get 下载导出文件操作
2020/08/07 Javascript
vue项目打包后请求地址错误/打包后跨域操作
2020/11/04 Javascript
python实现获取序列中最小的几个元素
2014/09/25 Python
python回溯法实现数组全排列输出实例分析
2015/03/17 Python
python中in在list和dict中查找效率的对比分析
2018/05/04 Python
python 中关于pycharm选择运行环境的问题
2020/10/31 Python
Python 爬取淘宝商品信息栏目的实现
2021/02/06 Python
关于老式浏览器兼容HTML5和CSS3的问题
2016/06/01 HTML / CSS
Nixon手表英国官网:美国尼克松手表品牌
2020/02/10 全球购物
巴西24小时在线药房:Droga Raia
2020/05/12 全球购物
会计与审计毕业生自荐信范文
2013/12/30 职场文书
俄罗斯商务邀请函
2014/01/26 职场文书
法制宣传月活动总结
2014/04/29 职场文书
趣味运动会策划方案
2014/06/02 职场文书
好的旅游活动方案
2014/08/19 职场文书
装配车间主任岗位职责
2015/04/08 职场文书
个人收入证明格式
2015/06/24 职场文书
html form表单基础入门案例讲解
2021/07/15 HTML / CSS
Python探索生命起源 matplotlib细胞自动机动画演示
2022/04/21 Python