來源:http://docs.angularjs.org/api/ngResource.$resourceangularjs
我的翻譯。json
ngResource模塊的服務。api
描述數組
建立資源對象的工廠。該資源對象容許你與RESTful服務端數據資源進行交互。服務器
返回的資源對象擁有提供了高層行爲的動做方法,從而無需與底層的$http服務進行交互。函數
須要安裝ngResource模塊。post
依賴url
$httpspa
使用翻譯
$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)參數回調。
【如下略】