全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Angular.js中$resource高大上的数据交互详解

本文主要给大家介绍的是关于Angular.js中$resource数据交互的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍:

$resource

创建一个resource对象的工厂函数,可以让你安全的和RESFUL服务端进行数据交互。

需要注入 ngResource 模块。angular-resource[.min].js

默认情况下,末尾斜杠(可以引起后端服务器不期望出现的行为)将从计算后的URL中剥离。

这个可以通过$resourceProvider配置:

 app.config(["$resourceProvider",function($resourceProvider){
 $resourceProvider.defaults.stripTrailingSlashes = false;
 }])

依赖:$http

使用:$resource(url,[paramDefaults],[actions],options);

url:一个参数化的url模板,带有前缀参数(如:/user/:username)。如果你使用的是带端口号的URL(如:http://example.com:8080/api),则需要慎重考虑。如果带有后缀(如:http://example.com/resource.json 或者 http://example.com/:id.json 或者 http://example.com/resource/:resource_id.:format) 。如果后缀之前的参数是空的,在这情况下:resource_id 比 /.优先执行,如果你需要这个序列出现而不崩溃,那么你可以通过/\.避免。

paramDefaults:url参数的默认值,这些可以在方法重写。如果参数的任何一个值是函数,它将作为每一次请求获取的参数值而被执行(除非该参数被忽略的)。

参数对象中的每个键值对都是先绑定到一个url模板,任何多余的密钥都被附加到url query的“?”后。 /path/:verb +{verb:'greet',salutation:'hello'}  =>  /path/greet?salutation=hello

actions: 用户对于resource行为的默认设置进行扩展的自定义配置的散列,该配置将会以$http.config的格式创建。

action: 字符串,action的名称,这个名称将成为resource对象方法的名称。

method:字符串,http方法(不区分大小写,如GET, POST, PUT, DELETE, JSONP等)。

params:对象,这次行动预先设定的参数。如果任何参数的值是一个函数,当一个参数值每一次需要获得请求时都会被执行(除非该参数被忽略的)。

url:字符串,行为指定的网址。

isArray:boolean,如果为true,那么这个行为返回的对象是个数组。

transformRequest:函数/函数的数组。转换函数或者一个包含转换函数的数组。转换函数获取http请求体和请求头,并且返回他们的转换版(通常是序列化)。

transformResponse:函数/函数的数组。转换函数或者一个包含转换函数的数组。转换函数获取http响应体和响应头,并且返回他们的转换版(通常是序列化)。

cache:boolean,如果为true,一个默认的$http缓存将被作为请求的缓存,否则如果存在一个用$cacheFactory创建的缓存实例,则将用于缓存。

timeout:数值,毫秒,超时则让请求中止。

withCredentials:boolean,是否设置withcredentials flag的XHR对象。查看更多信息的凭据。

responseType:字符串,响应头类型。

interceptor:对象,拦截对象有两个可选方法-response和responseError。

Options:扩展$resourceProvider行为的自定义设置,唯一支持的选项是stripTrailingSlashes,boolean类型,如果为真,url尾部的斜杠会被移除(默认为true)。

五种默认行为:

{

  “get”:{method:“get”},

  “save”:{method:“post”}

  “query”:{method:“get”,isArray:true}

  “remove”:{method:“delete”}

  “delete”:{method:“delete”}

}

get([params],[success],[error]);

save([params],postData,[success],[error]);

query([params],[success],[error]);

remove([params],postData,[success],[error]);

delete([params],postData,[success],[error]);

$save([params],[success],[error]);

$remove([params],[success],[error]);

使用代码:

(function () {
 angular.module("Demo", ["ngResource"])
 .controller("testCtrl", ["$resource",testCtrl]);
 function testCtrl($resource) {
  var myResource = $resource("/url/_url", {}, {
  myPost: {
   method: "post",
   url: "/newUrl/_newUrl",
   params: { id: "4" },
   interceptor: {
   response: function (d) {
    console.log(d);
   },
   responseError: function (d) {
    console.log(d);//这里的是随便写的地址,所以执行了error里的函数,可打印看参数及结果
   }
   }
  }
  });
  myResource.get({ id: "1" }, function (d) {
  console.log(d);
  }, function (d) {
  console.log(d);//这里的是随便写的地址,所以执行了error里的函数,可打印看参数及结果
  });
  myResource.query({ content: "text" }, function (d) {
  console.log(d);
  }, function (d) {
  console.log(d);//这里的是随便写的地址,所以执行了error里的函数,可打印看参数及结果
  });
  myResource.save({ text: "Hello World" }, { text: "Hello World" }, function (d) {
  console.log(d);
  }, function (d) {
  console.log(d);//这里的是随便写的地址,所以执行了error里的函数,可打印看参数及结果
  });
  myResource.remove({ text: "Hello World" }, { text: "Hello World" }, function (d) {
  console.log(d);
  }, function (d) {
  console.log(d);//这里的是随便写的地址,所以执行了error里的函数,可打印看参数及结果
  });
  myResource.delete({ text: "Hello World" }, { text: "Hello World" }, function (d) {
  console.log(d);
  }, function (d) {
  console.log(d);//这里的是随便写的地址,所以执行了error里的函数,可打印看参数及结果
  });
  var newResource = new myResource();
  newResource.$save({ id: "2" }, function (d) {
  console.log(d);
  }, function (d) {
  console.log(d);//这里的是随便写的地址,所以执行了error里的函数,可打印看参数及结果
  });
  newResource.$remove({ id: "3" }, function (d) {
  console.log(d);
  }, function (d) {
  console.log(d);//这里的是随便写的地址,所以执行了error里的函数,可打印看参数及结果
  });
  myResource.myPost();
 };
 }());

关于$resource,这里只是简单的介绍和使用,本兽对$resource的理解也不会很深(很少用到restful),希望有人交流相关问题。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持


# angularjs  # resource  # angularjs的  # angularjs数据交互  # 深入理解Angularjs中的$resource服务  # 详解AngularJs中$resource和restfu服务端数据交互  # 的是  # 他们的  # 如果你  # 自定义  # 都是  # 是一个  # 情况下  # 是个  # 也不  # 序列化  # 让你  # 相关内容  # 你可以  # 在这  # 而不  # 可以通过  # 给大家  # 将被  # 重写  # 可选 


相关文章: 子杰智能建站系统|零代码开发与AI生成SEO优化指南  建站主机默认首页配置指南:核心功能与访问路径优化  黑客入侵网站服务器的常见手法有哪些?  深圳 网站制作,深圳招聘网站哪个比较好一点啊?  合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?  怎么将XML数据可视化 D3.js加载XML  如何获取开源自助建站系统免费下载链接?  网站建设制作需要多少钱费用,自己做一个网站要多少钱,模板一般多少钱?  电商网站制作公司有哪些,1688网是什么意思?  南京做网站制作公司,南京哈发网络有限公司,公司怎么样,做网页美工DIV+CSS待遇怎么样?  如何配置IIS站点权限与局域网访问?  如何在阿里云高效完成企业建站全流程?  代刷网站制作软件,别人代刷火车票靠谱吗?  建站主机是否属于云主机类型?  c++怎么编写动态链接库dll_c++ __declspec(dllexport)导出与调用【方法】  详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)  建站之星如何快速生成多端适配网站?  如何通过建站之星自助学习解决操作问题?  javascript基本数据类型及类型检测常用方法小结  在线制作视频网站免费,都有哪些好的动漫网站?  如何在橙子建站中快速调整背景颜色?  如何在VPS电脑上快速搭建网站?  可靠的网站设计制作软件,做网站设计需要什么样的电脑配置?  如何选择高性价比服务器搭建个人网站?  如何通过IIS搭建网站并配置访问权限?  制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?  建站主机是什么?如何选择适合的建站主机?  深圳网站制作培训,深圳哪些招聘网站比较好?  如何在万网开始建站?分步指南解析  如何在Ubuntu系统下快速搭建WordPress个人网站?  如何通过VPS搭建网站快速盈利?  小型网站建站如何选择虚拟主机?  如何在宝塔面板中修改默认建站目录?  制作证书网站有哪些,全国城建培训中心证书查询官网?  早安海报制作网站推荐大全,企业早安海报怎么每天更换?  如何用西部建站助手快速创建专业网站?  如何通过万网虚拟主机快速搭建网站?  如何通过山东自助建站平台快速注册域名?  如何通过主机屋免费建站教程十分钟搭建网站?  车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?  如何用VPS主机快速搭建个人网站?  官网建站费用明细查询_企业建站套餐价格及收费标准指南  音乐网站服务器如何优化API响应速度?  制作旅游网站html,怎样注册旅游网站?  如何在阿里云完成域名注册与建站?  如何制作算命网站,怎么注册算命网站?  网站建设制作、微信公众号,公明人民医院怎么在网上预约?  网站制作培训多少钱一个月,网站优化seo培训课程有哪些?  C#如何序列化对象为XML XmlSerializer用法  网站制作新手教程,新手建设一个网站需要注意些什么? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。