0
我認爲這是一種奇怪的行爲。我有兩個「部分」實例。每個人都有一個練習集。然後,我爲每個集合做一個抓取,這就是問題所在。從服務器我可以同時接收一些可以在兩個集合中的模型。但這不會成爲問題,因爲它們是獨立的實例。在取回集合時觸發移除事件
型號:
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問題。在第一次收集收到他們的模型,我爲每個模型生成一個視圖(一個事件「添加」,所以我渲染練習視圖)。但接下來,出於某種原因,而不是我不明白,主幹觸發移除事件,並刪除重複的所有模型。在簡歷中,只有我可以在其模型不在其他範圍內的集合中。
編輯
我已經確定問題。問題是ID是重複的。如果我手動更改它們的ID,那麼一切正常。但否則它不會這樣做。但我認爲這是沒有意義的,因爲我正在實現兩個不同的部分。每個部分都有自己的數組和練習的ID。
這就是更多的骨幹關係問題恕我直言,骨幹將永遠不會調用'remove()'如果你設置'刪除'選項爲'false'。骨幹關係是廢話。 –
julesbou