这有点令人困惑,我没有代码可以粘贴在这里但是会感激任何帮助。当我使用Backbone进行这个假设设置时,我遇到了一个问题。这些是预设的:
现在,如果我执行以下操作
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模型填充。实际发生的是每个邮箱获取一个新的“集合”属性来获取消息数据。然而,这对我来说不起作用,因为默认集合中的模型不会获得Message模型结构。
是否有任何方法或解决方法可以让我将JSON对象中的数组映射到正确类型的预设集合?
答案 0 :(得分:1)
我认为对你有帮助的是Backbone Relational。它允许您定义不同模型之间的关系。
如果您想要自己推送一些东西,可以在初始化邮箱模型时执行以下操作:
initialize: function(attr, options) {
this.Messages= new MessagesCollection(attr.messages);
delete this.attributes.messages
}
通过这样做,您Messages
中的每个Mailbox
都会有一个PostOffice
主干集合。删除语句会将其从属性中移除......因此Mailbox.get('messages')
将不再有效。
希望helpes