JSON数据的主干自定义集合

Backbone custom collections from JSON data

本文关键字:自定义 集合 数据 JSON      更新时间:2023-09-26

这有点令人困惑,我没有代码可以粘贴在这里,但如果有任何帮助,我将不胜感激。当我使用Backbone进行这种假设设置时,我遇到了一个问题。这些是预设的:

  • postoffice=邮箱集合
  • 邮箱
  • messages=消息集合
  • 消息
  • 邮箱模型具有一个空白的"messages"集合作为其预设属性之一

现在,如果我做以下

postoffice.add([
{
    "id": "mailbox1",
    "messages": [
        {
            "id": "message1"
        },
        {
            "id": "message2"
        }
    ]
},
{
    "id": "mailbox2",
    "messages": [
        {
            "id": "message1"
        },
        {
            "id": "message2"
        }
    ]
},
{
    "id": "mailbox2",
    "messages": [
        {
            "id": "message1"
        },
        {
            "id": "message2"
        }
    ]
}
])

我希望每个空白的Mailbox.messages集合都填充有根据JSON数据创建的Message模型。实际情况是,每个邮箱都会获得一个新的"collection"属性,用于获取邮件数据。然而,这对我来说不起作用,因为默认集合中的模型没有获得Message模型结构。

是否有任何方法或解决方法可以让我将JSON对象中的数组映射到正确类型的预设集合?

我认为Backbone Relational之类的东西可能会对您有所帮助。它将允许您定义不同模型之间的关系。

如果你想自己滚动一些东西,你可以在初始化邮箱模型时做如下操作:

initialize: function(attr, options) {
    this.Messages= new MessagesCollection(attr.messages);
    delete this.attributes.messages
}

通过这样做,您将为PostOffice中的每个Mailbox拥有一个Messages主干集合。delete语句会将其从属性中删除。。。因此CCD_ 4将不再工作。

希望对有所帮助