加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

在Angularjs中的jQuery ajax beforeSend相当于什么?

发布时间:2020-12-17 07:38:26 所属栏目:安全 来源:网络整理
导读:我熟悉 Jquery AJAX call ,它具有不同的回调,如BeforeSend,成功,完成等. 这是使用Jquery的AJAX调用示例: $.ajax({ url: 'register.php',type: 'POST',data: {name:name,email:email},beforeSend: function() { // show loading GIF },complete: function()
我熟悉 Jquery AJAX call,它具有不同的回调,如BeforeSend,成功,完成等.

这是使用Jquery的AJAX调用示例:

$.ajax({
  url: 'register.php',type: 'POST',data: {name:name,email:email},beforeSend: function() {
       // show loading GIF
  },complete: function() {
      // hide loading GIF
  },success: function(data) {
      // parse response
  }
});

我想使用AngularJS实现相同的使用.

对于AngularJS AJAX请求,是否有类似beforeSend的回调?
这是我的代码到目前为止,但我不知道在哪里可以使用回调像beforeSend(以便我可以显示加载GIF图像)在我的代码:

$http.post('register.php',{'name': $scope.name,'email': $scope.email})
.success(function(data,status,headers,config) {
    if (data != '') { 
    }
});
默认情况下Angular不提供beforeSend并完成,但您可以使用拦截器实现它们.这是我的实现:
(function() {
    var app = angular.module("app");

    app.factory("interceptors",[function() {

        return {

            // if beforeSend is defined call it
            'request': function(request) {

                if (request.beforeSend)
                    request.beforeSend();

                return request;
            },// if complete is defined call it
            'response': function(response) {

                if (response.config.complete)
                    response.config.complete(response);

                return response;
            }
        };

    }]);

})();

那么你必须这样注册你的拦截器:

(function () {
        var app = angular.module('app',['ngRoute']);


        app.config(["$routeProvider","$httpProvider",function ($router,$httpProvider) {    

            // Register interceptors service
            $httpProvider.interceptors.push('interceptors');

            $router.when("/",{ templateUrl: "views/index.html" })


            .otherwise({ redirectTo: "/" });        
        }]);
    })();

这段代码可以这样使用:

var promise = $http({
    method: 'POST',url: constants.server + '/emails/send',data: model,beforeSend: function() {
        model.waiting = true;
    },complete: function() {
        model.waiting = false;
    }
});

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读