這個服務能夠建立一個資源對象,咱們能夠用它很是方便地同支持RESTful的服務端數據源進行交互,當同支持RESTful的數據模型一塊兒工做時,它就派上用場了。
REST是Representational State Transfer(表徵狀態轉移)的縮寫,是服務器用來智能化地提供數據服務的一種方式
後端
1)咱們首先須要引入ng-Resource 模塊,在angular以後api
<script src="js/vendor/angular.js"></script> 數組
<script src="js/vendor/angular-resource.js"></script>瀏覽器
2) 在咱們的應用中須要將其當作依賴進行引用
angular.module('myApp', ['ngResource']);
3)如何使用?
$resource服務自己是一個建立資源對象的工廠,返回的$resource對象中包含了同後端服務器進行的交互的高層API.
var User=$resource('/api/users/:userId',{userId:'@id'}); 服務器
能夠把User對象理解成同RESTful的後端服務進行交互的接口。spa
①GET請求: get(params,successFn,errrorFn)對象
不定義具體的參數,get()請求一般被用來獲取單個資源。接口
//GET /api/users
User.get(function(resp){
//處理成功
},function(err){
//處理錯誤
});
若是參數中傳入了具名參數(咱們例子中的參數是id),那麼get()方法會向包含id的URL發送請求:
//發起一個請求:GET-->/api/users/123
User.get({id:'1234'},function(resp){
//success
},function(error){
//fail
});
②QUERY 請求:query向指定URL發送一個GET請求,並指望返回一個JSON格式的資源對象集合。
//發起一個請求
User.query(function(users){
//讀取集合中的第一個用戶
var user=users[0];
});
query()和get()方法之間惟一的區別是AngularJS指望query()方法返回數組。 ip
1. save(params, payload, successFn, errorFn)
save方法向指定URL發送一個POST請求,並用數據體來生成請求體。save()方法用來在服務器上生成一個新的資源。 payload:表明請求發送的數據體
資源
//發送一個請求 with the body {name: 'Ari'}
User.save({},{name:'Ari'},function(resp){
},function(error){
});
2. delete(params, payload, successFn, errorFn)
delete方法會向指定URL發送一個DELETE請求,並用數據體來生成請求體。它被用來在服務器上刪除一個實例:
// DELETE /api/users
User.delete({}, {
id: '123'
}, function(response) {
// 處理成功的刪除響應
}, function(response) {
// 處理非成功的刪除響應
});
3. remove(params, payload, successFn, errorFn) remove方法和delete()方法的做用是徹底相同的,它存在的意義是由於delete是JavaScript的保留字,在IE瀏覽器中會致使額外的問題。 // 發起一個請求: // DELETE /api/users User.remove({}, { id: '123' }, function(response) { // 處理成功的刪除響應 }, function(response) { // 處理非成功的刪除響應 });