你的位置:首页 > Java教程

[Java教程]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);  }})