AngularJS转换请求内容

 

在"AngularJS中转换响应内容"中,体验了如何转换响应内容。本篇来体验如何转换请求内容。

主页面通过onSend方法把request对象转递出去。
 

<form name="form">
    <textarea ng-model="request.message" required></textarea>
    <input ng-model="request.tags">
</form>
<button ng-click="onSend($event, form.$valid)">发送</button>

 

request对象和onSend方法被定义在了controller中。

 

angular.module('api.controllers')
    .controller('controllers.View',['$scope', 'services.Api', function($scope, api){
        $scope.request = {
            message: "",
            tags:""
        };
        
        $scope.onSend = function(event, valid){
            event.preventDefault();
            if(valid){
                api.send($scope.request).then(function(result){
                    $scope.request.message = "";
                    $scope.request.tags = "";
                })
            }
        }
    }]);

 

以上,控制器依赖了services.Api这个服务,该服务封装了post请求。

 

angular.module('api.services').factory('services.Api',['$q', '$http', 'services.transformer.ApiRequest', function($q, $http, apiRequestTransformer){
    return {
        send: function(message){
            var deferred = $q.defer();
            $http({
                method: "POST",
                url: "",
                data: message,
                transformRequest: apiRequestTransformer
            }).success(function(data){
                deferred.resolve(data);
            });
            
            return deferred.promise;
        }
    }
}]);

 

$http服务中的transformRequest字段就是用来转换请求的。services.transformer.ApiRequest服务用来实施具体的转换。

 

angular.module('api.transformers').factory('services.transformer.ApiRequest', function(){
    return function(data){
        return JSON.stringify(data);
    }
})

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值