首页 > 语言 > JavaScript > 正文

浅谈AngularJS中使用$resource(已更新)

2024-05-06 15:26:43
字体:
来源:转载
供稿:网友

这个服务可以创建一个资源对象,我们可以用它非常方便地同支持RESTful的服务端数据源进行交互,当同支持RESTful的数据模型一起工作时,它就派上用场了。   

REST是Representational State Transfer(表征状态转移)的缩写,是服务器用来智能化地提供数据服务的一种方式  

1)我们首先需要引入ng-Resource  模块,在angular之后

 <script src="js/vendor/angular.js"></script>  <script src="js/vendor/angular-resource.js"></script>

2) 在我们的应用中需要将其当做依赖进行引用

angular.module('myApp', ['ngResource']);

3)如何使用?

$resource服务本身是一个创建资源对象的工厂,返回的$resource对象中包含了同后端服务器进行的交互的高层API.

var User=$resource('/api/users/:userId',{userId:'@id'});

可以把User对象理解成同RESTful的后端服务进行交互的接口。

一、HTTP GET类型的方法

①GET请求:  get(params,successFn,errrorFn)

不定义具体的参数,get()请求通常被用来获取单个资源。

//GET /api/users  User.get(function(resp){  //处理成功     },function(err){  //处理错误    }); 

如果参数中传入了具名参数(我们例子中的参数是id),那么get()方法会向包含id的URL发送请求:   

  //发起一个请求:GET-->/api/users/123  User.get({id:'1234'},function(resp){    //success  },function(error){    //fail  });

②QUERY 请求:query向指定URL发送一个GET请求,并期望返回一个JSON格式的资源对象集合。

 //发起一个请求 User.query(function(users){  //读取集合中的第一个用户  var user=users[0]; });

query()和get()方法之间唯一的区别是AngularJS期望query()方法返回数组。 

二、非HTTP GET类型的方法    

1. save(params, payload, successFn, errorFn)

save方法向指定URL发送一个POST请求,并用数据体来生成请求体。save()方法用来在服务器上生成一个新的资源。 payload:代表请求发送的数据体

  //发送一个请求 with the body {name: 'Ari'}  User.save({},{name:'Ari'},function(resp){    },function(error){    }); 

2. delete(params, payload, successFn, errorFn)   

delete方法会向指定URL发送一个DELETE请求,并用数据体来生成请求体。它被用来在服务器上删除一个实例:  

  // DELETE /api/users  User.delete({}, {    id: '123'  }, function(response) {  // 处理成功的删除响应  }, function(response) {  // 处理非成功的删除响应  });            
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选