0

我正在使用 AngularJS 创建我的网站的“讨论”模块。

我实际上有两种用于客户端<->服务器通信的资源:

  1. 讨论 $resource(用于检索与讨论相关的信息,例如“标题”、“状态”等。讨论还包含消息数组。
  2. 消息 $resource

问题:当我加载页面时,我做了一个Discussion.query(),用于检索讨论标题等。为了节省客户端<->服务器请求,还返回了讨论的消息(除了讨论信息)。好吧,这很好,但是如果我想编辑或删除消息怎么办?当我使用“ Discussion ”模型对象获得它们时,消息不被视为 $resource消息,我无法$update或 *$delete 它们。

实际上,我可以只做一个“ Messages.get() ”来获取真正的 Messages $resources,但这会花费对我的服务器的新请求(延迟、SQL 查询......)。

目前,我找到了两种解决方法来实现这一目标:

  1. 使用Message $resource静态方法(Message.delete(...)等)
  2. “原始” $http请求

我对这两种解决方案并不满意,因为我想要一个尽可能简单的代码。

--

是否可以告诉 Angular “嘿,这个对象实际上是一个 Message $resource !” 当我使用其他资源检索消息时?对不起,奇怪的解释。我认为任何代码都无济于事,但问我是否需要。

4

1 回答 1

1

这听起来像是这个问题的重复:ngResource resolve nested resources

但总结一下:没有真正的好方法来做你想做的事$resource。查看该帖子和我建议的可能解决方案,但正如您所见,我们从未真正想出一个好的解决方案。

您还可以查看Restangular库,看看它是否符合您的需求。

于 2013-10-18T19:41:34.183 回答