将嵌套的主干模型存储并恢复到本地存储中
Store and recover nested Backbone models into local storage
我想创建一个复杂的主干模型架构,如下所示:
- 骨干网模型A
- 主干模型B1(在A中)
- 集合模型C(在B1中)
- 骨干型号B2(在A中)
- 主干模型B1(在A中)
我希望嵌套主干模型,原因如下:
- 我有一个全局视图,将显示a和B中的信息
- 我有一个显示所有B1属性的视图
最后,我想要一个视图的主干模型,但我必须将a的集合只保存到本地存储中。
目前我的原则如下:
初始化A:时
-
在我设置的模型的initize()中:
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(),A模型中的每一级Backbone对象都执行toJSON()。
所有字段都存储良好。
现在我需要阅读这个对象,以便在我的视图中显示内容。
- 我创建了一个集合"itemsCollection",然后调用方法fetch()
灾难,只有第一级恢复,超过一级则重置为空B型。
告诉我,fetch()方法不是为恢复嵌套的主干模型而设计的。但是,我的模型模式简单而常见,我需要对象中的对象,我的解决方案可能不正确。
你有什么建议吗
提前感谢
True,Backbone将不满足嵌套模型(模型中的模型):
Backbone不包括对嵌套模型和集合的直接支持,或者"有很多"关联,因为在客户端有许多用于建模结构化数据的良好模式,并且Backbone应该为实现其中任何一个提供基础。
你可以在这里阅读所有关于它的内容,其中还提供了一些建议。
相关文章:
- 为什么不是't窗口.恢复正常工作吗?(javascript/jquery)
- 将作用域存储在JSON中
- 使用javascript存储变量的最安全方式
- 当图像转换为本地存储的DataURL时,EXIF被删除
- 如何临时暂停浏览器渲染,然后恢复整个页面
- 如何在chrome扩展中存储数据/结果,以及如何使用setTimeout使其只被调用一次
- 如何有效地将游戏数据存储在URL查询字符串中
- Ember.js-接口状态应该存储在哪里
- 将JSON存储和恢复到此Ionic应用程序的最有效方法
- 将嵌套的主干模型存储并恢复到本地存储中
- 如何从本地存储恢复javascript值
- 页面刷新时从本地存储恢复表单
- 存储/检索 html 5 文件对象,用于恢复损坏的文件上传
- 如何使用javascript完全恢复本地存储中保存的
- 对象的方法是否可以将要恢复的对象本身的名称存储为 JavaScript 中的字符串
- 缓存 Web 应用程序界面并使用 html5 本地存储恢复它
- 如何保存对象以供以后使用?通过JSON或其他方式发送并存储在DB中,然后恢复
- 使用Javascript来存储和恢复画布
- 使用javascript中的cookie存储和恢复滚动位置
- 存储和恢复事件处理程序