這個服務可以創建一個資源對象,我們可以用它非常方便地同支持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) { // 處理非成功的刪除響應 });
新聞熱點
疑難解答
圖片精選