【发布时间】:2015-01-21 02:46:13
【问题描述】:
所以这是我的场景:
我有一个充满模型的主干集合。然而,出于性能原因,这些不是“完整”模型。我的“完整”模型非常大(想象每个“完整”模型都有一个同样大的对象的子集合),所以当我从服务器获取集合时,我返回一个“部分”模型数组,其属性是“完整”模型(例如,我只返回子集合的长度而不是完整的子集合),足以在列表视图中向用户显示模型。
现在,当用户从列表中选择一个项目时,我从服务器获取“完整”模型并显示该模型的详细信息视图。我遇到的问题是,现在我有同一个模型的两个版本,集合中的一个“部分”和一个“完整”,手动让它们保持同步并不是正确的做事方式。
我想知道是否存在现有模式(在 Backbone 或 Marionette 中)用于将“部分”模型“填充”到“完整”模型中,同时保留所有相同的引用,以及“减少”当我们不再需要所有额外数据(即用户导航到列表中的另一个项目)时,相同的模型从“完整”模型变为“部分”模型。
我可以完全控制我的应用程序的前端和后端,如果模式需要我更改服务器返回的内容,我可以相应地进行更改。
【问题讨论】:
-
假设“部分”模型是“完整”模型的子集,是什么阻止您填充集合中的模型,因此您拥有一个以“基本”开头并扩展到“选择时“扩展”?
-
这正是我想做的,我只是想知道是否有一个很好的模式可以使用,或者我是否必须自己推出。基本上我想知道是否有人已经做过这样的事情并且有任何他们愿意分享的指针。我目前的总体想法是在模型上添加一个填充标志并填充和取消填充函数。
-
你不能只调用 fetch 来加载集合中的单个模型来加载完整的属性集吗?