Backbone.js 获取集合时触发移除事件
我认为这是一种奇怪的行为。我有两个“section”实例。每个人都有一个练习集。然后,我对每个集合进行一次提取,问题就在这里。我可以从服务器接收一些模型,这些模型可以同时存在于两个集合中。但这不会是一个问题,因为它们是独立的实例 型号:Backbone.js 获取集合时触发移除事件,backbone.js,backbone-relational,Backbone.js,Backbone Relational,我认为这是一种奇怪的行为。我有两个“section”实例。每个人都有一个练习集。然后,我对每个集合进行一次提取,问题就在这里。我可以从服务器接收一些模型,这些模型可以同时存在于两个集合中。但这不会是一个问题,因为它们是独立的实例 型号: class App.Models.Section extends Backbone.RelationalModel relations: [ { type: Backbone.HasMany key: 'exercises'
class App.Models.Section extends Backbone.RelationalModel
relations: [
{
type: Backbone.HasMany
key: 'exercises'
relatedModel: 'App.Models.Exercise'
collectionType: 'App.Collections.Exercises'
reverseRelation:
key: 'section'
includeInJSON: false
}
]
视图:
两个例子:
section1 = new App.Models.Section
section2 = new App.Models.Section
获取两个练习集:
section1.get('exercises').fetch({ data: params, remove:false })
section2.get('exercises').fetch({ data: params, remove:false })
我撒谎了,这是我的骨气问题。集合第一次收到它们的模型,我为每个模型生成了一个视图(一个事件“add”,所以我呈现了练习视图)。但接下来,由于一些我不理解的原因,主干触发了一个删除事件,并删除了所有重复的模型。在简历中,只有我可以在其他集合中拥有其模型不在其他集合中的集合
编辑
我已经确定了问题所在。问题是ID是重复的。如果我手动更改他们的ID,那么一切正常。但除此之外,它不能做到这一点。但我认为这没有意义,因为我列举了两个不同的部分。每个部分都有自己的带有练习ID的数组。最后,我刚刚从我的项目中删除了主干关系。这更像是主干关系问题,如果您将'remove'选项设置为
false
,主干将永远不会调用remove()
。这是废话。
section1.get('exercises').fetch({ data: params, remove:false })
section2.get('exercises').fetch({ data: params, remove:false })