等待所有服务调用的最佳方法是在Angular控制器中返回响应

时间:2017-05-30 08:40:13

标签: javascript angularjs

我是如何通过所有服务调用返回其响应以停止控制器中的加载条

1 个答案:

答案 0 :(得分:0)

最好的解决方案之一是实现一个拦截器。拦截器是拦截所有请求和工厂的工厂。从角度应用程序触发的响应。

app.factory( 'Inteceptor', function($rootScope) {
 int count = 0;
 return {
   request : function() {count++},
   requestError : function() {},
   reponse : function() {
                  count--; 
                  if( count == 0 ) { 
                         $rootScope.$broadcast( 'Event' ) 
                  }
   },
   responseError : function() {}
}});

在此拦截器中,您可以保留发送的总请求数。从零开始,在requeset上增加它,并在响应时减少它。 要知道所有请求何时完成,您只需广播一个事件,让每个人都知道所有的请求都已完成。

这就是你在config方法中推送拦截器的方法。

$httpProvider.interceptors.push('CustomHttpInterceptor');