2014-10-20 115 views
0

如何使用AngularJS $資源獲取更高級的API請求?我需要請求以下網址:

/學校/

/學校/ 1

/學校/ 1 /書籍

/學校/ 1 /書籍/ 1

對於像基本的URL:

/學校/

/學校/ 1

我知道我可以做:

angular.module('resources.schools').factory('School', ['$resource', function($resource){ 
    return $resource('/schools/:id'); 
}]); 

回答

0

先走一步,巢URL,並給父標識符字段的名字上你型號:

$resource("/schools/:school_id/books/:id") 
+0

我想用同一個工廠的兩個請求。比如,School.query()和School.getBooks() – 2014-10-20 13:18:47

0

根據問題和您的最新評論,將'書籍'部分轉爲參數(例如'controller'),然後使用設置控制器的方法來擴展資源。

var School = $resource("/schools/:school_id/:controller/:book_id", {}, { 
    getBooks: { 
    method: 'GET', 
    params: { 
     controller: 'books' 
    } 
    } 
}); 

現在,您可以實現以下目標:

var schools = School.query(); 
var newSchool = new School(); 
var mySchool = School.get(1); 
var mySchoolBooks = mySchool.getBooks(); 
var aBookInMySchool = School.query({'school_id':1, controller:'books', 'book_id': 2})