我正在使用 AngularJS 创建我的网站的“讨论”模块。
我实际上有两种用于客户端<->服务器通信的资源:
- 讨论 $resource(用于检索与讨论相关的信息,例如“标题”、“状态”等。讨论还包含消息数组。
- 消息 $resource
问题:当我加载页面时,我做了一个Discussion.query(),用于检索讨论标题等。为了节省客户端<->服务器请求,还返回了讨论的消息(除了讨论信息)。好吧,这很好,但是如果我想编辑或删除消息怎么办?当我使用“ Discussion ”模型对象获得它们时,消息不被视为 $resource消息,我无法$update或 *$delete 它们。
实际上,我可以只做一个“ Messages.get() ”来获取真正的 Messages $resources,但这会花费对我的服务器的新请求(延迟、SQL 查询......)。
目前,我找到了两种解决方法来实现这一目标:
- 使用Message $resource静态方法(Message.delete(...)等)
- “原始” $http请求
我对这两种解决方案并不满意,因为我想要一个尽可能简单的代码。
--
是否可以告诉 Angular “嘿,这个对象实际上是一个 Message $resource !” 当我使用其他资源检索消息时?对不起,奇怪的解释。我认为任何代码都无济于事,但问我是否需要。