來源: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:?, ...}, 其中: 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)參數回調。
【以下略】
