angular -- $resource 用法
安装
ngResource模块是一个可选的angularjs模块,如果需要使用,我们要单独引用js
<script type="text/javascript" src="/javascripts/angular-resource.js">
应用$resource
我们并不是直接通过$resource服务本身同服务器通信,$resource是一个创建资源对象的工厂,用来创建同服务端交互的对象。
var User = $resource('/api/users/:userId', {userId:'@id'});
返回的User对象包含了同后端服务进行交互的方法,我们可以把User对象理解成同RESTFul的后端服务进行交互的接口。
该对象包含两个get类型的方法已经三个非get类型的方法。
User.get({id:'123'}, successFn, errorFn);
该方法向url发送一个get请求,并期望一个json类型的响应。这里会向/api/users/123发送一个请求,successFn处理请求成功响应,errorFn处理错误。
User.query(params, successFn, errorFn)
同get()方法使用类似,一般用来请求多条数据。
save(params, payload, successFn, errorFn);
save方法会发起一个post请求,params参数用来填充url中变量,对象payload会作为请求体进行发送
delete(params, payload, successFn,errorFn)
delete方法一个DELETE请求,payload作为消息体进行发送
remove(params, payload, successFn, errorFn)
同delete类似,不同的是remove用来移除多条数据
通过$resource生成的对象来同服务器进行交互的时候,我们看可以定义处理成功以及处理失败的函数,这些函数接受的参数不仅仅是简单的对象,而是经过包装之后的对象,会被添加$save(), $remove(), $delete三个方法,可以直接调用这三个方法来后服务端进行交互。
User.get({id:'123'}, function(user){
user.name = 'changeAnotherName';
user.$save();
//这里等价于User.save({id:'123'},{name:'changeAnotherName'})
});
扩展$resource
$resource对常见的五种请求进行封装,我们还可以对$resource进行扩展。
这里要扩展$resource我们需要传入第三个参数,该参数是一个对象。
$resource('/api/users',{},{
sendEmail:{
method:'',
url:'',
params:{},
isArray:boolean,
transformRequest:函数或者函数数组
transformResponse:函数或者函数数组
cache:布尔型或缓存对象
timeout:数值或promise对象
withCredentials:布尔类型
responseType:字符串,用来设置XMLHttpRequestResponseType属性
}
})
我们也可以将$resource服务当做自定义服务的基础。
angular.module('testApp', ['ngResource']),factory('UserService',['$resource', function($resource){
return $resource(url,{},{});
}]);
.
angular -- $resource 用法的更多相关文章
- @Autowired @Resource用法
@Autowired的用法和作用 这个注解就是spring可以自动帮你把bean里面引用的对象的setter/getter方法省略,它会自动帮你set/get. <bean id="u ...
- Spring注解@Component、@Repository、@Service、@Controller,@Autowired、@Resource用法
一.Spring定义bean,@Component.@Repository.@Service 和 @Controller Spring 2.5 中除了提供 @Component 注释外,还定义了几个拥 ...
- @Autowired与@Resource用法
官方文档中有这样一段话. If you intend to express annotation-driven injection by name, do not primarily use @Aut ...
- Spring学习 Ioc篇(三)
1.在注解注入方式中,首先要在xml中引入如下的红线的命名空间: <?xml version="1.0" encoding="UTF-8" ?> & ...
- Spring之使用Annotation注解开发项目
我们也可以使用Annotation来实现注入操作,提高我们写代码的灵活性和效率.spring中要使用annotation,需要在配置文件中增加: <beans xmlns="http: ...
- Vue学习官网和Vue的书籍 目录结构
Vue基础知识学习网站[中文] https://cn.vuejs.org/v2/guide/ Vue路由知识学习网站[中文] https://router.vuejs.org/zh/guide/ V ...
- Spring5参考指南:基于注解的容器配置
文章目录 @Required @Autowired @primary @Qualifier 泛型 @Resource @PostConstruct和@PreDestroy Spring的容器配置可以有 ...
- Spring中@Resource与@Autowired、@Qualifier的用法与区别
1.@Autowired与@Resource都可以用来装配bean. 都可以写在字段上,或写在setter方法上. 2.@Autowired默认按类型装配(这个注解是属业spring的),默认情况下必 ...
- Spring中@Resource与@Autowired、@Qualifier的用法与区别(转)
1.@Autowired与@Resource都可以用来装配bean. 都可以写在字段上,或写在setter方法上. 2.@Autowired默认按类型装配(这个注解是属业spring的),默认情况下必 ...
随机推荐
- CRT【p3868】[TJOI2009]猜数字
Description 现有两组数字,每组k个,第一组中的数字分别为:a1,a2,...,ak表示,第二组中的数字分别用b1,b2,...,bk表示.其中第二组中的数字是两两互素的.求最小的非负整数n ...
- 洛谷——P2035 iCow
P2035 iCow 题目描述 被无止境的农活压榨得筋疲力尽后,Farmer John打算用他在MP3播放器市场新买的iCow来听些音乐,放松一下.FJ的iCow里存了N(1 <= N < ...
- SNOI2017(BZOJ5015~5018)泛做
T1:礼物 想错方向了,实际上很简单. 我想的是:显然题目求的是$\sum_{i=1}^{n} i^{k}2^{i}$,然后或许可以通过化式子变成与n无关的复杂度? 然后就不停往斯特林数反演和下降幂的 ...
- 【虚树】hdu6161 Big binary tree
题意:一棵n个结点的完全二叉树,初始i号结点的权值为i.有两种操作:单点修改:询问经过某个结点的路径中,权值和最大的路径的权值和是多少. 修改的时候,暴力修改到根节点的路径上的点的f(x)即可. 跟虚 ...
- 【贪心】【multiset】Tinkoff Challenge - Final Round (Codeforces Round #414, rated, Div. 1 + Div. 2) C. Naming Company
考虑两个人,先把各自的集合排个序,丢掉一半,因为比较劣的那一半一定用不到. 然后贪心地放,只有两种决策,要么把一个最优的放在开头,要么把一个最劣的放在结尾. 如果我的最优的比对方所有的都劣(或等于), ...
- 【序列莫队+二分答案+树状数组】POJ2104-K-th Number
[题目大意] 给出一个长度为n的序列和m组查询(i,j,k),输出[i,j]中的第k大数. [思路] 先离散化然后莫队分块.用树状数组来维护当前每个值的个数,然后对于每次询问二分答案即可. 又一次实力 ...
- 【最大流Dinic模板】HDU1532&POJ1273-Drainage Ditches(16/3/6更正)
#include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #inc ...
- [BalkanOI2016]Lefkaritika
题目大意: 一个n*m的格子上有b个障碍物,现在让你往上面放正方形(长宽在格线上).问可以放多少种边长.位置不同的正方形? 思路: 很容易想到一个O(n^3)的暴力: 首先前缀和,然后枚举某一个顶点和 ...
- Java常用小笔记
1.对list集合进行分页 //startIndex指的是开始的小标 从0开始,pageSize是每页记录数 int toIndex = new Integer(startIndex)+new Int ...
- SQL SERVER 2008 数据库置疑处理办法
1.修改数据库为紧急模式 ALTER DATABASE Zhangxing SET EMERGENCY 2.使数据库变为单用户模式 ALTER DATABASE Zhangxing SET SINGL ...