这个服务能够建立一个资源对象,咱们能够用它很是方便地同支持RESTful的服务端数据源进行交互,当同支持RESTful的数据模型一块儿工做时,它就派上用场了。
REST是Representational State Transfer(表征状态转移)的缩写,是服务器用来智能化地提供数据服务的一种方式
后端
1)咱们首先须要引入ng-Resource 模块,在angular以后api
<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的后端服务进行交互的接口。spa
①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()方法返回数组。 ip
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) {
// 处理非成功的删除响应
});
3. remove(params, payload, successFn, errorFn) remove方法和delete()方法的做用是彻底相同的,它存在的意义是由于delete是JavaScript的保留字,在IE浏览器中会致使额外的问题。 // 发起一个请求: // DELETE /api/users User.remove({}, { id: '123' }, function(response) { // 处理成功的删除响应 }, function(response) { // 处理非成功的删除响应 });