2014-12-06 52 views
-1

我使用离子建立应用程序,并且在加载的每个请求上都显示加载指示器。当请求结束时,加载指示器被删除。这在网络连接存在时很有用。如何脱机使用http拦截器如果脱机

当离线时,请求开始并显示加载指示符。问题是加载指示符永远不会消失,因为请求永远不会结束。我该如何最好地处理这个问题?我正在考虑超时或什么的。当用户离线时,最好的方法是不要启动请求。

$httpProvider.interceptors.push(function($rootScope) { 
    return { 
     request: function(config) { 
     config.timeout = 5000; 
     $rootScope.$broadcast('loading:show') 
     return config 
     }, 
     response: function(response) { 
     $rootScope.$broadcast('loading:hide') 
     return response 
     } 
    } 
    }) 
+2

你也应该尝试处理requestError和responseError。 – OdeToCode 2014-12-06 16:22:21

回答

0

下面添加

responseError: function(response) { 
    $rootScope.$broadcast('loading:hide') 
    return response 
    } 


    requestError: function(response) { 
    $rootScope.$broadcast('loading:hide') 
    return response 
    } 
+0

太棒了,不知道这些事件! – Jorre 2014-12-07 14:36:30