天天看點

AngularJs $resource 高大上的資料互動

$resource

建立一個resource對象的工廠函數,可以讓你安全的和RESFUL服務端進行資料互動。

需要注入 ngResource 子產品。angular-resource[.min].js

預設情況下,末尾斜杠(可以引起後端伺服器不期望出現的行為)将從計算後的URL中剝離。

這個可以通過$resourceProvider配置:

依賴:$http

使用:$resource(url,[paramDefaults],[actions],options);

url:一個參數化的url模闆,帶有字首參數(如:/user/:username)。如果你使用的是帶端口号的URL(如:http://example.com:8080/api),則需要慎重考慮。如果帶有字尾(如:http://example.com/resource.json 或者 http://example.com/:id.json 或者 http://example.com/resource/:resource_id.:format)。如果字尾之前的參數是空的,在這情況下:resource_id 比 /.優先執行,如果你需要這個序列出現而不崩潰,那麼你可以通過/\.避免。

paramDefaults:url參數的預設值,這些可以在方法重寫。如果參數的任何一個值是函數,它将作為每一次請求擷取的參數值而被執行(除非該參數被忽略的)。

參數對象中的每個鍵值對都是先綁定到一個url模闆,任何多餘的密鑰都被附加到url query的“?”後。 /path/:verb +{verb:’greet’,salutation:’hello’}  =>  /path/greet?salutation=hello

actions: 使用者對于resource行為的預設設定進行擴充的自定義配置的散列,該配置将會以$http.config的格式建立。

action: 字元串,action的名稱,這個名稱将成為resource對象方法的名稱。

method:字元串,http方法(不區分大小寫,如GET, POST, PUT, DELETE, JSONP等)。

params:對象,這次行動預先設定的參數。如果任何參數的值是一個函數,當一個參數值每一次需要獲得請求時都會被執行(除非該參數被忽略的)。

url:字元串,行為指定的網址。

isArray:boolean,如果為true,那麼這個行為傳回的對象是個數組。

transformRequest:函數/函數的數組。轉換函數或者一個包含轉換函數的數組。轉換函數擷取http請求體和請求頭,并且傳回他們的轉換版(通常是序列化)。

transformResponse:函數/函數的數組。轉換函數或者一個包含轉換函數的數組。轉換函數擷取http響應體和響應頭,并且傳回他們的轉換版(通常是序列化)。

cache:boolean,如果為true,一個預設的$http緩存将被作為請求的緩存,否則如果存在一個用$cacheFactory建立的緩存執行個體,則将用于緩存。

timeout:數值,毫秒,逾時則讓請求中止。

withCredentials:boolean,是否設定withcredentials flag的XHR對象。檢視更多資訊的憑據。

responseType:字元串,響應頭類型。

interceptor:對象,攔截對象有兩個可選方法-response和responseError。

Options:擴充$resourceProvider行為的自定義設定,唯一支援的選項是stripTrailingSlashes,boolean類型,如果為真,url尾部的斜杠會被移除(預設為true)。

五種預設行為:

{

  “get”:{method:“get”},

  “save”:{method:“post”}

  “query”:{method:“get”,isArray:true}

  “remove”:{method:“delete”}

  “delete”:{method:“delete”}

}

get([params],[success],[error]);

save([params],postData,[success],[error]);

query([params],[success],[error]);

remove([params],postData,[success],[error]);

delete([params],postData,[success],[error]);

$save([params],[success],[error]);

$remove([params],[success],[error]);

使用代碼:

繼續閱讀