【发布时间】:2012-08-30 13:43:38
【问题描述】:
我正在寻找创建一个复杂的主干模型架构:
- 主干模型 A
- 主干模型 B1(A 中)
- 集合模型 C(在 B1 中)
- 主干模型 B2(A 中)
- 主干模型 B1(A 中)
我希望嵌套主干模型,原因如下:
- 我有一个全局视图,可以显示 A 和 B 中存在的信息
- 我有一个显示所有 B1 属性的视图
最后,我想要一个 Backbone 模型用于一个视图,但我必须只将 A 的集合保存到本地存储中。
目前我的原则如下:
初始化 A 时:
-
在我设置的 A 模型的 initalize() 中:
this.attributes.modelB = new ModelB();
目前,如果我创建一个对象模型 A,我可以访问 B 属性,如下所示:
modelA.attributes.modelB.get ('id')
// or
modelA.attributes.modelB.attributes.id
其实它只是一个嵌套的主干模型对象
让我们将 A 存储到本地存储中以备后用:
- 我将 A 添加到我的收藏中“itemsCollection”
- 我用 save() 保存 A
让我们看看本地存储:
localStorage.getItem ("itemsCollection")
添加了一个对象是完全json解析的,好像通过调用方法save(),每一级Backbone对象转换成一个模型执行一个toJSON()。
所有字段都保存完好。
现在我需要读取这个对象以在我的视图中显示内容。
- 我创建了一个集合“itemsCollection”,然后我调用方法fetch()。
灾难,仅恢复第一级,超过级重置为空B模型。
某事告诉我 fetch() 方法不是为恢复嵌套主干模型而设计的。 但是,我的模型模式简单通用,我需要对象中的对象,我的解决方案可能不正确。
你对我有什么建议吗?
提前谢谢你
【问题讨论】:
标签: javascript view backbone.js nested models