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);
    }
})
AngularJS转换请求内容的更多相关文章
- AngularJs $http 请求服务
		$http $http是Angular的一个核心服务,它有利于浏览器通过XMLHttpRequest 对象或者 JSONP和远程HTTP服务器交互. $HTTP API 是基于 $q服务暴露的defe ... 
- IIS请求筛选模块被配置为拒绝超过请求内容长度的请求
		HTTP错误404.13 - Not Found 请求筛选模块被配置为拒绝超过请求内容长度的请求,原因是Web服务器上的请求筛选被配置为拒绝该请求,因为内容长度超过配置的值(IIS 7 默认文件上传大 ... 
- HTTP错误404.13 - Not Found 请求筛选模块被配置为拒绝超过请求内容长度的请求
		http://www.cnblogs.com/JKqingxinfeng/archive/2012/10/29/2744663.html HTTP错误404.13 - Not Found 请求筛选模块 ... 
- HttpClient与APS.NET Web API:请求内容的压缩与解压
		首先说明一下,这里的压缩与解压不是通常所说的http compression——那是响应内容在服务端压缩.在客户端解压,而这里是请求内容在客户端压缩.在服务端解压. 对于响应内容的压缩,一般Web服务 ... 
- 转换 Html 内容为纯文本内容(html,文本互转)
		转自http://www.cnblogs.com/jyshi/archive/2011/08/09/2132762.html : /// <summary> /// 转换纯文本内容为 HT ... 
- Python之路【第十四篇】:AngularJS --暂无内容-待更新
		Python之路[第十四篇]:AngularJS --暂无内容-待更新 
- 转:IIS请求筛选模块被配置为拒绝超过请求内容长度的请求
		HTTP错误404.13 - Not Found 请求筛选模块被配置为拒绝超过请求内容长度的请求,原因是Web服务器上的请求筛选被配置为拒绝该请求,因为内容长度超过配置的值(IIS 7 默认文件上传大 ... 
- ASP.NET Core Web APi获取原始请求内容
		前言 我们讲过ASP.NET Core Web APi路由绑定,本节我们来讲讲如何获取客户端请求过来的内容. ASP.NET Core Web APi捕获Request.Body内容 [HttpPos ... 
- 【转】IIS请求筛选模块被配置为拒绝超过请求内容长度的请求
		HTTP错误404.13 - Not Found 请求筛选模块被配置为拒绝超过请求内容长度的请求,原因是Web服务器上的请求筛选被配置为拒绝该请求,因为内容长度超过配置的值(IIS 7 默认文件上传大 ... 
随机推荐
- Android动态控制状态栏显示和隐藏
			记得之前有朋友在留言里让我写一篇关于沉浸式状态栏的文章,正巧我确实有这个打算,那么本篇就给大家带来一次沉浸式状态栏的微技巧讲解. 其实说到沉浸式状态栏这个名字我也是感到很无奈,真不知道这种叫法是谁先发 ... 
- lr
			Action(){ //获取响应结果 web_reg_save_param("system_code", "LB=system_code\":\"&q ... 
- CF126B
			CF126B Password 题意: 给出一个字符串 H,找一个最长的字符串 h,使得它既作为前缀出现过.又作为后缀出现过.还作为中间的子串出现过. 解法: 沿着 $ next_n $ 枚举字符串, ... 
- 温故而知新--JavaScript书摘(二)
			前言 毕业到入职腾讯已经差不多一年的时光了,接触了很多项目,也积累了很多实践经验,在处理问题的方式方法上有很大的提升.随着时间的增加,愈加发现基础知识的重要性,很多开发过程中遇到的问题都是由最基础的知 ... 
- LeetCode(26):  删除排序数组中的重复项
			Easy! 题目描述: 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间 ... 
- hdu2476
			/* dp[l][r]表示将任意串的[l,r]刷成s2样子的最小代价 ans[i]表示将s1的前i位刷成s2的代价 按照区间dp的常用做法,dp[l][r]的状态由dp[l][k],dp[k+1][r ... 
- Linux下apache支持PHP配置
			https://www.cnblogs.com/qiuxiao/p/6815350.html https://www.cnblogs.com/polestar/p/6086552.html 
- 华为交换机SNMP OID
			http://vbb.fyjy.net:88/showthread.php?t=4647 
- canvas画多边形
			<canvas id = "myCanvas" width = '500' height = '500'> Canvas画正多边形 </canvas>< ... 
- Go 语言 IDE 之 VSCode 配置使用
			Gogland 是 JetBrains 公司推出的 Go 语言集成开发环境.Gogland 同样基于 IntelliJ 平台开发,支持 JetBrains 的插件体系.官方:https://www.j ... 
