我从服务器JSON创建骨干集合。数据来自mongo,因此每个项目具有相同的对象,并且主干删除此重复项。这对我来说是不受欢迎的行为,我无法找到解决方案来保留这种情况。取款后,我的商品只有' section1'在secound对象中(id:2)。我在第一个对象中也需要相同的部分。例如,我的服务器响应是:
items: [{
id:1,
sections: [{
id: 1.//this object is removed
name: 'section1'
}]
}, {
id: 2,
sections: [{
id:1.
name: 'section1'
}]
}]
我的部分模型只是:
Section = Backbone.RelationalModel.extend({
});
和项目模型:
Item = Backbone.RelationalModel.extend({
relations: [
{
'type': 'HasMany',
'key': 'sections',
'relatedModel': 'Section',
'includeInJSON': 'id',
'reverseRelation': {
'key': 'item',
'includeInJSON': 'id'
}
}
]
});
答案 0 :(得分:0)
如果我没记错的话,这个插件不支持多对多。所以,正在发生的事情是它将Section 1
附加到第一个Item
,然后将其附加到第二个SectionItem
并将其从第一个中删除。
事实上,来自docs:
<强> Backbone.HasMany 强>
定义HasMany关系。 定义reverseRelation时,类型 将是HasOne 。
您的选择:
HasOne
Section
和HasOne
Item
的{{1}}模型。有人发布了这种设置http://jsfiddle.net/mmacaula/XaESG/2/ Section
模型键添加属性,使每个属性都唯一。但这并不是实现你想要做的事情的好方法。这是一个非常好的参考答案:Implementing a Many-to-Many relationship with Backbone-Relational