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

 更新时间:2017年05月17日 09:58:34   作者:timelessmemoryli  
这篇文章主要介绍了AngularJS使用拦截器实现的loading功能,结合完整实例形式分析了AngularJS拦截器的设置、调用及loading功能实现技巧,需要的朋友可以参考下

本文实例讲述了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相关内容感兴趣的读者可查看本站专题:《AngularJS指令操作技巧总结》、《AngularJS入门与进阶教程》及《AngularJS MVC架构总结

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

相关文章

  • AngularJS中transclude用法详解

    AngularJS中transclude用法详解

    这篇文章主要介绍了AngularJS中transclude用法,详细分析了transclude的具体功能、使用技巧与相关注意事项,需要的朋友可以参考下
    2016-11-11
  • 简述AngularJS的控制器的使用

    简述AngularJS的控制器的使用

    这篇文章主要介绍了AngularJS的控制器的使用,文中给出了具体的用于HTML中的对象示例,需要的朋友可以参考下
    2015-06-06
  • angularjs实现猜大小功能

    angularjs实现猜大小功能

    这篇文章主要为大家详细介绍了angularjs实现猜大小功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • ios设备中angularjs无法改变页面title的解决方法

    ios设备中angularjs无法改变页面title的解决方法

    今天小编就为大家分享一篇ios设备中angularjs无法改变页面title的解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-09-09
  • AngularJS使用ng-app自动加载bootstrap框架问题分析

    AngularJS使用ng-app自动加载bootstrap框架问题分析

    这篇文章主要介绍了AngularJS使用ng-app自动加载bootstrap框架问题,分析了前面文章中所述的ng-app自动加载bootstrap出现的错误原因与相应的解决方法,需要的朋友可以参考下
    2017-01-01
  • Angular2中constructor和ngOninit的使用讲解

    Angular2中constructor和ngOninit的使用讲解

    这篇文章主要介绍了Angular2中constructor和ngOninit的使用讲解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • 使用Angular CLI生成 Angular 5项目教程详解

    使用Angular CLI生成 Angular 5项目教程详解

    这篇文章主要介绍了使用Angular CLI生成 Angular 5项目的教程详解 ,需要的朋友可以参考下
    2018-03-03
  • angular异步验证防抖踩坑实录

    angular异步验证防抖踩坑实录

    这篇文章主要给大家介绍了关于angular异步验证防抖踩坑的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用angular具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-12-12
  • 使用Angular CLI进行Build(构建)和Serve详解

    使用Angular CLI进行Build(构建)和Serve详解

    这篇文章主要介绍了使用Angular CLI进行Build(构建)和Serve详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • 学习Angularjs分页指令

    学习Angularjs分页指令

    这篇文章主要和大家一起学习Angularjs分页指令,代码很详细,文章结构紧凑,感兴趣的小伙伴们可以参考一下
    2016-07-07

最新评论