2013-06-06 60 views
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。

+2

這就是更多的骨幹關係問題恕我直言,骨幹將永遠不會調用'remove()'如果你設置'刪除'選項爲'false'。 骨幹關係是廢話。 julesbou

回答

0

最後,我剛剛從我的項目中刪除了Backbone-Relational。

相關問題