lys*_*ing 7 angularjs angularjs-resource
有什么选项可以解析ngResource响应中的嵌套资源?
关于在ngResource中解析嵌套资源的端点有一些相关的问题,但是这个问题是关于REST响应何时包含嵌套在正在查询的集合中的第二个资源,特别是你不会有的1对1映射例如pets/<id>/owner作为自己的资源.
假设有两种资源,Pets并且Owners:
GET /宠物:
[{
name: 'spark',
type: 'dog',
owner: '/owners/3/' # alternatively just '3' or the full object.
}]
Run Code Online (Sandbox Code Playgroud)
作为开发人员,我有时想要查询整个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;
})
Run Code Online (Sandbox Code Playgroud)
这里的问题很多.有诚信 - 一个人.我相信,这种实现允许同一资源的多个实例.那就是实用性.你也有额外的属性来跟踪(owner和getOwner(),而不是只owner;可能setOwner,如果你希望能够保存模型).
可以构建一个替代解决方案transformResponse,但是在每个具有嵌套映射的资源中都包含该解决方案.
我相信这就是 Martin Gontovnikas 创建 Restangular 的确切原因。他不喜欢在主角度框架中处理嵌套的 $resources。我认为他的 Restangular 解决方案非常适合您的需求。他的代码位于 GitHub 上,并且在 youtube上有一个精彩的介绍视频。
一探究竟。我想你会发现它完全按照你想要的方式做。
| 归档时间: |
|
| 查看次数: |
6795 次 |
| 最近记录: |