gpt4 book ai didi

javascript - 如何不删除 Backbone 集合中的重复项

转载 作者:行者123 更新时间:2023-11-28 07:04:11 24 4
gpt4 key购买 nike

我从服务器 JSON 创建 Backbone 集合。数据来自 mongo,因此每个项目都有相同的对象,并且主干会删除这些重复项。这对我来说是不需要的行为,所以我找不到保留此实例的解决方案。获取我的项目后,第二个对象(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.

您的选择:

  1. 创建 SectionItem型号 HasOne SectionHasOne Item 。有人发布了关于这种设置的 fiddle http://jsfiddle.net/mmacaula/XaESG/2/
  2. 使用另一个库 - 或您使用的库的扩展,例如 https://github.com/jj-studio/Backbone-JJRelational
  3. 将属性添加到 Section使每一件产品都独一无二的型号 key 。不过,这并不是实现您想要做的事情的好方法。

这是一个非常好的引用答案:Implementing a Many-to-Many relationship with Backbone-Relational

关于javascript - 如何不删除 Backbone 集合中的重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31841095/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com