我正在使用Angular的$resource
来获取/更新我的Project对象,简化版本如下所示:
{
_id: "12345",
name: "whatever",
revisions: [
{ _id: "67890",
comments: [
{ _id: "13579", body: "here's a comment" }
]
}
}
因此每个Project都包含一个Revision对象数组,其中包含一个Comment对象数组,每个都有一个ID。
如果没有整个项目对象,我的应用程序将毫无用处,因此最有效的方法是在页面加载时仅请求Project一次。让我说我想更新或添加一个版本(这是一个子对象数组),我认为理想的情况是我可以找到该修订对象,然后调用$save
它。问题是Project的子对象不继承$resource
给根Project对象的函数。
我意识到我可以更新范围内的Revision对象,然后在Project上调用$save
,但是我的应用程序在创建Revisions时需要一个非常具体的行为,这与更新Projects时不同,这与创建评论时不同,等等。
我知道我可以创建一个名为Revision的新类型$resource
,并为其提供自己唯一的URL,但为了更新该对象,我需要首先请求它(效率低,右?)。
有没有人对如何解决这个问题有任何建议?我最好使用$http
而不是$resource
吗?
答案 0 :(得分:1)
如果您只获取一次数据并且不需要更新数据,那么使用$http
和jsonp
可能会更好。 $resource
在内部使用$http
,因此从长远来看没有太大区别。