angularjs封装$http为factory的方法

前端之家收集整理的这篇文章主要介绍了angularjs封装$http为factory的方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

angularjs有本身封装的ajax服务$http,因为用惯了jQuery的ajax,所以,自己封装了一下angularjs的$http,代码如下

在controller中引入dataFactory和$http即可使用更方便的调用ajax,一般情况下headers为

params为一个json字符串

然后调用

函数 },function(data){ //error函数 })

但是其中又一次在项目中,后台框架使用的是Struts框架,在一个Python中使用的很好的dataFactory,在这里的后台取不到数,最后发现是应为header设置不对,而且params的格式也不正确,可以把header修改

上面dataFactory中else添加转换params代码

for(name in obj) { value = obj[name]; if(value instanceof Array) { for(i=0; i<value.length; ++i) { subValue = value[i]; fullSubName = name + '[' + i + ']'; innerObj = {}; innerObj[fullSubName] = subValue; query += param(innerObj) + '&'; } } else if(value instanceof Object) { for(subName in value) { subValue = value[subName]; fullSubName = name + '[' + subName + ']'; innerObj = {}; innerObj[fullSubName] = subValue; query += param(innerObj) + '&'; } } else if(value !== undefined && value !== null) query += encodeURIComponent(name) + '=' + encodeURIComponent(value) + '&'; } return query.length ? query.substr(0,query.length - 1) : query; }; $http({ url: endpoint,data: param(params),config) { // defer.resolve(data); defer.reject(data); }); </pre>

只是个人觉得这个方式比较方便,记录下来,希望对大家的学习有所帮助,也希望大家多多支持编程之家。

原文链接:https://www.f2er.com/js/39184.html

猜你在找的JavaScript相关文章