如何不删除 backbone 集合中的重复项
How to not remove duplicates in collection in backbone
我从服务器 JSON 创建了 backbone 集合。数据来自 mongo,因此每个项目都具有相同的对象,并且 backbone 删除此重复项。这对我来说是不受欢迎的行为,所以我找不到保留此实例的解决方案。获取后,我的项目在第二个对象 (id:2) 中只有 'section1'。我在第一个对象中也需要相同的部分。例如我的服务器响应是:
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'
}
}
]
});
如果我没记错的话,这个插件不支持多对多。所以,发生的事情是它将 Section 1
附加到第一个 Item
,然后将其附加到第二个并从第一个移除它。
其实从docs:
Backbone.HasMany
Defines a HasMany relation. When defining a reverseRelation, the type
will be HasOne.
您的选择:
- 创建
SectionItem
模型 HasOne
Section
和 HasOne
Item
。有人用这种设置 http://jsfiddle.net/mmacaula/XaESG/2/ 发布了 fiddle
- 使用另一个库 - 或者您使用的库的扩展,例如 https://github.com/jj-studio/Backbone-JJRelational
- 将 属性 添加到
Section
模型键,使每个键都独一无二。不过,这不是实现您想要做的事情的好方法。
这里有一个很好的参考答案:Implementing a Many-to-Many relationship with Backbone-Relational
我从服务器 JSON 创建了 backbone 集合。数据来自 mongo,因此每个项目都具有相同的对象,并且 backbone 删除此重复项。这对我来说是不受欢迎的行为,所以我找不到保留此实例的解决方案。获取后,我的项目在第二个对象 (id:2) 中只有 'section1'。我在第一个对象中也需要相同的部分。例如我的服务器响应是:
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'
}
}
]
});
如果我没记错的话,这个插件不支持多对多。所以,发生的事情是它将 Section 1
附加到第一个 Item
,然后将其附加到第二个并从第一个移除它。
其实从docs:
Backbone.HasMany
Defines a HasMany relation. When defining a reverseRelation, the type will be HasOne.
您的选择:
- 创建
SectionItem
模型HasOne
Section
和HasOne
Item
。有人用这种设置 http://jsfiddle.net/mmacaula/XaESG/2/ 发布了 fiddle
- 使用另一个库 - 或者您使用的库的扩展,例如 https://github.com/jj-studio/Backbone-JJRelational
- 将 属性 添加到
Section
模型键,使每个键都独一无二。不过,这不是实现您想要做的事情的好方法。
这里有一个很好的参考答案:Implementing a Many-to-Many relationship with Backbone-Relational