博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AngularJS中使用$resource
阅读量:4354 次
发布时间:2019-06-07

本文共 1793 字,大约阅读时间需要 5 分钟。

 这个服务可以创建一个资源对象,我们可以用它非常方便地同支持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) { 
    // 处理非成功的删除响应 
    }); 
     
  3. remove(params, payload, successFn, errorFn) 
    remove方法和delete()方法的作用是完全相同的,它存在的意义是因为delete是JavaScript的保留字,在IE浏览器中会导致额外的问题。   
     
    // 发起一个请求: 
    // DELETE /api/users 
    User.remove({}, { 
     id: '123' 
    }, function(response) { 
    // 处理成功的删除响应 
    }, function(response) { 
    // 处理非成功的删除响应 
    }); 

转载于:https://www.cnblogs.com/tzz-ing/p/5821849.html

你可能感兴趣的文章
C6表单(方成eform)---自定义流程标题格式
查看>>
GridView下DropDownList 的选择方法onselectedindexchanged 实现方法
查看>>
Python之set集合
查看>>
Generic Repository Pattern - Entity Framework, ASP.NET MVC and Unit Testing Triangle
查看>>
Win7 下新版本Windows Virtual PC 安装SharePoint步骤详解
查看>>
SQLSERVER 升级版本的方法
查看>>
正则表达式基本语法详解
查看>>
BZOJ2132: 圈地计划
查看>>
PHP数据库连接mysql与mysqli的区别与用法
查看>>
char * 与char []探究理解
查看>>
QT窗体显示在屏幕中间位置
查看>>
emmet使用技巧
查看>>
RPC-Thrift(二)
查看>>
MSSQL for Linux 安装指南
查看>>
【Golang 接口自动化08】使用标准库httptest完成HTTP请求的Mock测试
查看>>
洛谷 P1036 选数
查看>>
女性社区TOP10
查看>>
BP神经网络算法推导及代码实现笔记zz
查看>>
前端必读:浏览器内部工作原理
查看>>
每天一个Linux命令(16)--which命令
查看>>