javascript - Angular JS - 监听或绑定(bind) $http 请求

标签 javascript angularjs

有没有办法在每次有 $http 请求时以及收到响应后监听/绑定(bind)事件?

实际上,我已经通过提供自己的事件和监听器手动完成了此操作,但我只是好奇 Angular JS 中是否已经有一个监听器?

我想这样做的原因是,每次我的应用程序发送/执行 $http 请求时,我想显示加载屏幕以指示应用程序正在检索数据,然后在收到响应后将其隐藏。

谢谢!

最佳答案

您可以使用interceptor做到这一点

var httpinterceptor = function ($q, $location) {
    return {
        request: function (config) {
            //show your loading message
            console.log(config);
            return config;
        },

        response: function (result) {
            //hide your loading message
            console.log('Repos:', result);
            return result;
        },

        responseError: function (rejection) {
            //hide your loading message
            console.log('Failed with', rejection);
            return $q.reject(rejection);
        }
    }
};

app.config(function ($httpProvider) {
    $httpProvider.interceptors.push(httpinterceptor);
});

演示:Fiddle

关于javascript - Angular JS - 监听或绑定(bind) $http 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28803946/

相关文章:

javascript - 此类的语法是否正确,工作不正确,脚本错误。 (: line 0) (javascript p5.js)

javascript - 使用 IP 地址范围过滤 JSON (JavaScript)

javascript - 创建关闭事件以从自定义叠加层发出

javascript - 如何将项目从 ng-repeat 传递到由 ng-include 创建/加载的 Controller ?

javascript - 如何根据密码强度显示自定义消息

javascript - 查找文本 JavaScript

angularjs - Angular UI 模式指令,背景缺失

javascript - Angularjs ng-repeat 函数从 get 返回 html

javascript - Angular Directive(指令)链接功能

javascript - Angularjs "Controller as"或 "$scope"