当从HTTP调用返回缓存数据时,如何显示Ionic加载覆盖?

时间:2016-09-26 08:52:06

标签: angularjs ionic-framework

我想在调用WebService时显示ionicLoading,我使用拦截器来执行此操作并且它正在工作。我也在使用HTTP缓存,但是当调用WebService并且至少调用一次(因此调用缓存并且它正在工作)时,不会显示ionicLoading。

以下是我的缓存代码:

$httpProvider.defaults.cache = true;

这是我的拦截器代码:

$httpProvider.interceptors.push(['$q', '$injector', '$rootScope', function ($q, $injector, $rootScope) {
    return {
      'request': function (config) {
        if (config.url.indexOf('http') !== -1) {  
          config.showError = $rootScope.showError;
          $rootScope.showError = true;
          config.showLoading = $rootScope.showLoading;
          $rootScope.showLoading = true;  
          if (config.showLoading) {
            var $ionicLoading = $injector.get('$ionicLoading');
            $ionicLoading.show({
              template: '<ion-spinner icon="dots" class="spinner-energized"></ion-spinner>'
            });
          }
        }
        config.timeout = 40000;
        return config;
      },  
      'response': function (response) {
        $rootScope.retryHttp = 0;
        // do something on success
        if (response.config.showLoading) {
          var $ionicLoading = $injector.get('$ionicLoading');
          $ionicLoading.hide();
        }

当我使用调试器检查代码时,我注意到当WebService缓存数据时以及何时没有调用ionicLoading.show()函数。

0 个答案:

没有答案