angularjs$resource的5种基本操作方法
angular请求资源有五种基本方法,分别是get,save,query,delete,remove
【HTTP GET类型的方法】
①GET请求: get(params,successFn,errrorFn)
不定义具体的参数,get()请求通常被用来获取单个资源。
//GET
let $com = $resource("api/user/getById.do");
$com.get(function(res){
//处理成功
},function(err){
//处理错误
});
如果需要传入具名参数(例子中的参数是id):
//发起一个请求:GET
$com.get({id:'1234'},function(resp){
//success
},function(error){
//fail
});
②QUERY 请求:query向指定URL发送一个GET请求,并期望返回一个JSON格式的资源对象集合。
//发起一个请求
let $com = $resource("api/user/index.do");
$com.query(function(users){
//读取集合
});
query()和get()方法之间唯一的区别是AngularJS期望query()方法返回数组。
【非HTTP GET类型的方法】
- save(params, payload, successFn, errorFn)
save方法向指定URL发送一个POST请求,并用数据体来生成请求体。save()方法用来在服务器上生成一个新的资源。 payload:代表请求发送的数据体
//发送一个请求 with the body {name: 'Ari'}
let $com = $resource("api/user/save.do");
let user ={name:'test',age:12}
$com.save({},user,function(res){
},function(error){
});
- delete(params, payload, successFn, errorFn)
delete方法会向指定URL发送一个DELETE请求,并用数据体来生成请求体。它被用来在服务器上删除一个实例:
// DELETE
let $com = $resource("api/user/delete.do");
$com.delete({}, {
id: '123'
}, function(response) {
// 处理成功的删除响应
}, function(response) {
// 处理非成功的删除响应
});
- remove(params, payload, successFn, errorFn)
remove方法和delete()方法的作用是完全相同的,它存在的意义是因为delete是JavaScript的保留字,在IE浏览器中会导致额外的问题。
// 发起一个请求:
// DELETE
let $com = $resource("api/user/delete.do");
$com.remove({}, {
id: '123'
}, function(response) {
// 处理成功的删除响应
}, function(response) {
// 处理非成功的删除响应
});
除了上面的固定格式的五种操作以外,我们可以根据灵活设计url和参数传递,如下面这个例子
//@的作用是使用资源实例调用时,@id对应的是实例的属性id
// 在参数一般名称匹配对应是路径参数,不匹配的参数url参数
return $resource('rest/news/:id/:action', {id: '@id'},
{
pager : {
method : 'GET',
params : {
'action' : 'pager'
},
},
});