Angular js嵌套资源

时间:2014-10-06 07:27:47

标签: angularjs web-services resources

我想配置一个角度$资源。这个$资源应该允许调用远程Web服务。

// Gets all the nested-resources of a parent-resource
1) GET  /parent-resource/nested-resources
// Gets a nested-resource by id
2) GET  /nested-resource/{id}
// Create a nested resource
3) POST /nested-resource

在我的场景中,我想使用第一个Web服务检索所有嵌套资源。当用户修改嵌套资源时,将使用第三个Web服务保存嵌套资源。

var NestedResource = $resource('/nested-resource/:id');
Publishable.prototype.isNew = function() {
    return this.id === undefined;
};
... lot of functions...

此配置适用于第2和第3个Web服务,但如何配置资源以使用1st。有几个函数在嵌套资源原型上注册,我想避免创建特定的$ resource。

Publishable.prototype.getByParentId = function(parentId) {
    // ??        
}

1 个答案:

答案 0 :(得分:1)

在资源上创建自定义操作,如下所示:

var NestedResource = $resource('/nested-resource/:id',,
    { action: "getAll",
      method: "GET",
      isArray: true,
      url: '/parent-resource/:parentId/nested-resources'
    });

现在你应该可以做到:

var allItems = NestedResource.getAll({parentId: 1});

检索parentId 1的列表。