在AngularJS中嵌套资源

时间:2013-10-18 18:26:31

标签: javascript rest angularjs restful-architecture ngresource

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

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

  1. 讨论 $ resource (用于检索与讨论相关的信息,例如'title','status'等。讨论还包含一个Message数组。
  2. 消息 $ resource
  3. 问题: 当我加载页面时,我会执行 Discussion.query(),以检索讨论标题等。为了节省客户端< - >服务器请求,消息还返回讨论(除了讨论信息)。 嗯,这很好,但如果我想编辑或删除邮件怎么办?当我使用“讨论”模型对象时,消息不被视为$ resource 消息,我无法 $ update 他们或* $删除它们。

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

    目前,我找到了两种解决方法:

    1. 使用消息 $ resource 静态方法( Message.delete(...)等)
    2. “原始” $ http 请求
    3. 我对这两个解决方案并不满意,因为我希望代码尽可能简单。

      -

      是否有可能告诉Angular“嘿,这个对象实际上是一个Message $资源!”当我使用其他资源检索邮件? 对不起,奇怪的解释。我不认为任何代码会有所帮助,但问我需要。

1 个答案:

答案 0 :(得分:1)

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

但总结一下:使用$resource并不是一个很好的方法来做你想做的事。查看该帖子以及我建议的可能解决方案,但正如您所看到的,我们从未真正想出过一个好的解决方案。

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