AngularJS中的$resource

來源: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:?, ...},
 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)參數回調。

【如下略】

相關文章
相關標籤/搜索