2014-10-20 2 views
0

Как использовать ресурс AngularJS $ для более сложных запросов API? Мне нужно запросить по следующим адресам:

/школы/

/школы/1

/школы/1/книги

/школа/1/книги/1

Для основных URLs, как:

/школ/

/школы/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() –

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}) 
Смежные вопросы