簡體   English   中英

如何知道angular完成了所有的處理和渲染

[英]How to know that angular completed all processing and rendering

我需要停止進度條。 如果我有多個http請求,我如何知道所有線程何時完成以及所有響應何時呈現。 我嘗試在響應中使用$httpProvider.interceptors ,但我不知道這是否是最后一個http響應。 而且您也不知道什么時候會呈現最后一個響應。

您可以通過攔截器中的http.pendingRequests跟蹤待處理的請求,例如

angular.module('myApp').factory('myHttpResponseInterceptor', function($q, $location, $injector, $rootScope){
    var _http = null;

    return {
        request: function(config){
            $rootScope.$broadcast("loader_show");
            return config;
        },
        response: function(response){
            _http = _http || $injector.get('$http');
            if(_http.pendingRequests.length < 1){
                $rootScope.$broadcast("loader_hide");
            }
            return response;
        },
        responseError: function (response) {
            _http = _http || $injector.get('$http');
            if(_http.pendingRequests.length < 1){
                $rootScope.$broadcast("loader_hide");
            }
            console.log("response rejected in interceptor");
            return $q.reject(response);
        }
    };
});

我在我的項目中使用了它,它工作得很好。

希望對你也有幫助。

你可以使用angular-busyngProgress 之類的模塊來做同樣的事情。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM