在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的回调? $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; } }); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |