发表于: 2017-04-29 22:55:48
1 886
今天完成的事情:
做任务10,提交表单。
明天计划的事情:
继续做任务10,看书。
遇到的问题:
暂时没有。
收获:
AngularJs Angular数据类型判断
angular.isArray
判断括号内的值是否为数组。
格式:angular.isArray(value);
value: 被判断是否为数组的值。
angular.isDate
判断括号内的值是否是一个时间。
格式:angular.isDate(value);
value:被判断是否为时间的值。
angular.isDefined
判断括号内的值是否存在。
格式:angular.isDefined(value);
value:被判断是否存在的值。
angular.isFunction
判断括号内的值是否是一个函数。
格式:angular.isFunction(value);
value:被判断是否是函数在值。
angular.isElement
判断括号内的值是否是一个Dom元素(或者包装的jQuery元素)
格式:angular.isElement(value);
value:被判断是否是Dom元素/jQuery元素。
angular.isNumber
判断括号内的值是否是数字。
格式:angular.isNumber(value);
value:被判断是否是数字的值。
angular.isObject
判断括号内的值是否是一个对象。和Javascript的typeof不相同,它不把null视为对象。需要注意的是:数组也是对象。
格式:angular.isObject(value);
value:被判断是否是对象的值。
angular.isString
判断括号内的值是否是字符串。
格式:angular.isString(value);
value:被判断是否是字符串的值。
angular.isUndefined
判断括号内的值是否是undefined。
格式:angular.isUndefined(value);
value:被判断是否是undefined的值。
AngularJS的ng Http Request与response格式转换方法:
angular作为Single Page Application推荐的交互方式当然是基于json的ajax调用。但今天要说的是当你不幸工作在一个遗留或者不可控制的服务上,而这服务是基于非json提交方式(或许是常规表单(form)提交,或者其他自定义数据格式),那么我们只能改变ng内部$http默认request/response格式转化方式。
所幸的是ng $http给我们提供了多种可用方式转化数据格式(下面demo将以form提交方式为例):
***对于部分单独的http request设置:
对于http ajax方式最后一个参数都是关于http的配置信息,其中包括一项transformRequest,我们可以利用transformRequest在ajax发送数据之前改变数据的格式,例如下边的demo:
$http.post("/url", {
id: 1,
name: "greengerong"
}, {
transformRequest: function(request) {
return $.param(request);
}
});
这里利用jQuery的$.param进行表单提交方式的格式转化,所以我们能够看见的request body 为:
id=1&name=greengerong
***对于整个app的http request设置:
如果我们需要对整个http的数据转化格式进行设置,那么可以选用在config阶段对$httpProvider默认行为进行设置:
angular.module("app", [])
.config(["$httpProvider", function($httpProvider) {
$httpProvider.defaults.transformRequest = [
function(request) {
return $.param(request);
}
];
}
]);
这样我们就可以轻易的转化为form提交方式。
同样$http也为我们提供了transformResponse方式,我们也可以创建自己的response转化,比如json之前加入自定义前缀防止json array攻击等等。
评论