AngularJS中的$resource


來源:http://docs.angularjs.org/api/ngResource.$resource

個人翻譯。

ngResource模塊的服務。

描述

創建資源對象的工廠。該資源對象允許你與RESTful服務端數據資源進行交互。

返回的資源對象擁有提供了高層行為的動作方法,從而無需與底層的$http服務進行交互。

需要安裝ngResource模塊。

依賴

$http

使用

$resource(url[, paramDefaults][, actions]);

參數

參數名 類型 詳情
url string

參數以【:】為前綴的參數化的URL模板,例如【/user/:username】。

如果url帶有后綴,則直接添加。例如【http://example.com/:id.json】,甚至是【http://example.com/resource/:resource_id.:format】。

paramDefaults

【可選】

Object

url參數中的默認值。可在action方法中被覆蓋。

若任一參數為函數,則每當一次請求需要獲取參數值時,都將被執行(除非參數被覆蓋)。

參數對象中的每個鍵值對,若在url模板中存在則會被首先綁定,多余的鍵將被添加到url搜索查詢(?之后)。

給定模板【/path/:verb】與參數【{verb:'greet', salutation:'Hello'}】,將得到URL【/path/greet?salutation=Hello】。

若參數值以【@】作為前綴,則該參數的值將被從data對象中取出(用於非GET操作)。

actions

【可選】

Object

聲明擴展默認資源動作集合的自定義動作的聲明集合。聲明應以$http.config的格式創建:

{action1: {method:?, params:?, isArray:?, headers:?, ...},
 action2: {method:?, params:?, isArray:?, headers:?, ...},
 ...}

其中:

action - {string} - 動作名。該名稱成為你的資源對象的方法名。

method – {string} – HTTP請求方法。合法的方法包括GET, POST, PUT, DELETE和JSONP。

params – {Object=} – 本動作提前綁定的參數的可選集合。若任一參數為函數,則每當一次請求需要獲取參數值時,都將被執行(除非參數被覆蓋)。

url – {string} – 動作特定url覆蓋。支持url模板,與資源級別url相似。

isArray – {boolean=} – 本動作的返回對象是一個數組,則為真。

【以下略】

返回

返回一個資源“類”對象。該對象包含默認資源動作的方法,和可選的自定義的擴展動作。默認集合包含以下動作:

{ 'get':    {method:'GET'},
  'save':   {method:'POST'},
  'query':  {method:'GET', isArray:true},
  'remove': {method:'DELETE'},
  'delete': {method:'DELETE'} };

調用這些方法將以特定的http方法、目標和參數調用ng.$http。數據從服務器返回后,該對象將是該資源類的一個實例。save,remove,delete動作($前綴)可作為該對象的方法使用。這允許你很容易地對服務器端數據進行CRUD操作,如:

var User = $resource('/user/:userId', {userId:'@id'});
var user = User.get({userId:123}, function() {
user.abc = true;
user.$save();
});

調用$resource對象的方法將立即返回一個空引用(對象或數組依isArray而定)。數據一旦從服務器返回,該引用將填充具體的數據。這是一個有用的技巧,因為資源通常被賦給一個模型,模型隨即被視圖渲染。一個空對象不會被渲染,而當數據從服務器返回,那么該對象將填充數據,視圖會自動重新渲染、以顯示新的數據。這意味着在多數情況下沒有必要為動作方法寫回調函數。

類對象或實例對象中的動作方法可以用以下參數進行調用:

HTTP GET “類”動作: Resource.action([parameters], [success], [error])
non-GET “類”動作: Resource.action([parameters], postData, [success], [error])
non-GET 實例動作: instance.$action([parameters], [success], [error])

Success回調以(value, responseHeaders)參數調用。Error回調以(httpResponse)參數回調。

【以下略】


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM