【发布时间】:2013-10-19 03:41:34
【问题描述】:
我正在使用 AngularJS 创建我网站的“讨论”模块。
我实际上有两种资源用于客户端服务器通信:
- Discussion $resource(用于检索与讨论相关的信息,例如“标题”、“状态”等。讨论还包含消息数组。
- 消息 $resource
问题: 当我加载页面时,我会执行 Discussion.query(),用于检索讨论标题等。为了节省客户端服务器请求,消息讨论也被返回(除了讨论信息)。 好吧,这很好,但是如果我想编辑或删除消息怎么办?当我使用“Discussion”模型对象获得它们时,消息不被视为 $resource Message,我无法 $update 它们或 * $删除它们。
实际上,我可以只做一个“Messages.get()”来获取真正的消息$resources,但这会花费我的服务器的新请求(延迟, SQL 查询, ...)。
目前,我找到了两种解决方法:
- 使用 Message $resource 静态方法(Message.delete(...) 等)
- “原始”$http 请求
我对这两种解决方案并不满意,因为我想要一个尽可能简单的代码。
--
是否可以告诉 Angular “嘿,这个对象实际上是一个 Message $resource !”当我使用其他资源检索消息时? 对不起,奇怪的解释。我认为任何代码都无济于事,但如果需要,请询问我。
【问题讨论】:
-
听起来讨论服务应该对消息服务有一个依赖,并且它应该在加载讨论时在 messagesService 上设置 .messages 属性;不熟悉$resource,所以没有留下完整的答案
-
是的,我已经这样做了。问题是生成的消息不被视为 $resource,所以我无法编辑/删除它们
-
发布一些代码......很难听懂你在说什么。
标签: javascript rest angularjs restful-architecture ngresource