我认为这是一种奇怪的行为。我有两个“部分”实例。每个人都有一个练习集合。然后,我为每个集合进行一次获取,这就是问题所在。从服务器我可以接收一些可以同时在两个集合中的模型。但这不是问题,因为它们是独立的实例。
型号:
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
}
]
查看:
class App.Views.Section extends Backbone.Views
initialize: ->
@collection.bind 'add', @renderExercise
@collection.bind 'remove', @unrenderExercise
@subviews = {}
renderExercise: (exercise) =>
view = new Baskeitor.Views.ExerciseShow model: exercise
@subviews{exercise.cid} = view
@$el.append view.render().el
unrenderExercise: (exercise) =>
@subviews{exercise.cid}.remove()
delete @subviews{exercise.cid}
两个实例:
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 })
我撒谎,这是我的Backbone问题。在第一次集合接收他们的模型时,我为每个模型生成了一个视图(事件'add',所以我渲染了练习视图)。但接下来,由于某些原因,我不明白,Backbone会触发一个删除事件并删除所有重复的模型。在简历中,只有我可以拥有模型不在另一个模型中的集合。
修改
我已经确定了问题所在。问题是ID是重复的。如果我手动更改它们的ID,那么一切正常。但否则它不会这样做。但我认为这没有意义,因为我正在实现两个不同的部分。每个部分都有自己的数组,其中包含练习ID。
答案 0 :(得分:0)
最后,我刚从项目中删除了Backbone-Relational。