【问题标题】:Store and recover nested Backbone models into local storage将嵌套的 Backbone 模型存储并恢复到本地存储中
【发布时间】:2012-08-30 13:43:38
【问题描述】:

我正在寻找创建一个复杂的主干模型架构:

  • 主干模型 A
    • 主干模型 B1(A 中)
      • 集合模型 C(在 B1 中)
    • 主干模型 B2(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


    【解决方案1】:

    确实,Backbone不会满足嵌套模型(模型中的模型):

    Backbone 不包括对嵌套模型和集合或“具有许多”关联的直接支持,因为有许多用于在客户端建模结构化数据的良好模式,Backbone 应该为实现任何其中

    您可以在here 阅读所有相关信息,其中还提供了一些建议。

    【讨论】:

      猜你喜欢
      • 2014-03-21
      • 2014-12-12
      • 2014-11-30
      • 1970-01-01
      • 1970-01-01
      • 2011-11-24
      • 1970-01-01
      • 2016-04-29
      • 2015-05-23
      相关资源
      最近更新 更多