Angularjs Post-Receive Hook or Similar?

后端 未结 2 1642
南旧
南旧 2020-12-30 10:27

Is there a way to call a function every time after a response is returned from a server without explicitly calling it after in the callback?

The main purpose is that

相关标签:
2条回答
  • 2020-12-30 10:57

    I gave Gloopy a +1 on solution, however, that other post he references does DOM manipulation in the function defined in the config and the interceptor. Instead, I moved the logic for starting spinner into the top of the intercepter and I use a variable in the $rootScope to control the hide/show of the spinner. It seems to work pretty well and I believe is much more testable.

    <img ng-show="polling" src="images/ajax-loader.gif">
    
    angular.module('myApp.services', ['ngResource']).
    .config(function ($httpProvider) {
        $httpProvider.responseInterceptors.push('myHttpInterceptor');
        var spinnerFunction = function (data, headersGetter) {
            return data;
        };
        $httpProvider.defaults.transformRequest.push(spinnerFunction);
    })
    //register the interceptor as a service, intercepts ALL angular ajax http calls
    .factory('myHttpInterceptor', function ($q, $window, $rootScope) {
        return function (promise) {
            $rootScope.polling = true;
            return promise.then(function (response) {
                $rootScope.polling = false;
                return response;
            }, function (response) {
                $rootScope.polling = false;
                $rootScope.network_error = true;
                return $q.reject(response);
            });
        };
    })
    // other code left out
    
    0 讨论(0)
  • 2020-12-30 11:17

    If you mean for requests using $http or a $resource you can add generic error handling to responses by adding code to the $httpProvider.responseInterceptors. See more in this post.

    Although it is about starting/stopping spinners using this fiddle you can add your code in the 'stop spinner' section with // do something on error. Thanks to zdam from the groups!

    0 讨论(0)
提交回复
热议问题