有哪些选项可以解决 ngResource 响应中的嵌套资源?
关于解析 ngResource 中嵌套资源的端点存在一些相关问题,但这个问题是关于何时 REST 响应包含嵌套在正在查询的集合中的第二个资源,尤其是您不会拥有的一对一映射例如pets/<id>/owner
作为自己的资源。
假设有两个资源,Pets
并且Owners
:
获取/宠物:
[{
name: 'spark',
type: 'dog',
owner: '/owners/3/' # alternatively just '3' or the full object.
}]
作为开发人员,Owner
有时我想查询整个资源,有时我想查询Pet
资源,然后我自动想将owner
属性解析为资源实例。
这是我目前的解决方案:
.factory('Pet', function ($resource, Owner) {
var Pet = $resource('/pets/:id', {id: '@id'});
Pet.prototype.getOwner = function () {
return new Owner(this.owner); // or Owner.get({id: this.owner})
}
return Pet;
})
这里的问题很多。有诚信——一方面。我相信,这种实现允许同一资源的多个实例。然后是实用性。您还可以使用其他属性来跟踪(owner
和getOwner()
,而不仅仅是owner
;setOwner
如果您希望能够保存模型,则可能)。
可以在transformResponse
.