AngularJS Advanced $资源映射

时间:2014-10-20 01:04:43

标签: angularjs rest angularjs-resource angularjs-factory

如何将AngularJS $资源用于更高级的API请求?我需要请求以下网址:

  

/学校/

     

/学校/ 1

     

/学校/ 1 /书籍

     

/学校/ 1 /书籍/ 1

对于基本网址:

  

/学校/

     

/学校/ 1

我知道我能做到:

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

2 个答案:

答案 0 :(得分:0)

然后继续嵌套URL并为父标识符指定模型中字段的名称:

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

答案 1 :(得分:0)

根据问题和您的最新评论,翻开“#39;书籍'将一部分分配到参数(例如' 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})