2012-03-08 72 views
0

我有骨幹的日曆,每天都有一堆選項。用戶一次只能看到一天。骨幹視圖的解綁兒童

所以當用戶選擇前往下一天或前一天時,我會撥打MyApp.Views.ShowDay重新繪製一天。

ShowDay視圖調用幾個子視圖MyApp.Views.Hours。 我需要解除舊日的小時數,當我創建新的一天時,但這隻會導致錯誤。

我試圖做到這一點是

 
MyApp.Views.Showday = Backbone.View.extend({ 
    events: { 
      "click div.change_day":"change_day" 
    }, 

    change_day: function(){ 
     MyApp.Views.Hours.unbind(); //I've tried off(), off, remove() as well 

    } 

}); 

方式這不是取消綁定孩子的方式?

回答

1

您需要明確地從事件中解除綁定事件處理程序。看到這個答案,另一個太問題,應特別注意bindTounbindFromAll功能:

Backbone.js : repopulate or recreate the view?

+0

感謝Derick,我實際上已經閱讀了關於您的綁定技術的關於洛杉磯技術的文章,但我希望能夠更簡單地做些什麼。我現在試試這個。 – pedalpete 2012-03-08 19:41:35

+0

不幸的是,沒有什麼更簡單的。 Backbone採取了一種不干涉的方式,讓我們可以在腳下自己拍攝或自己編寫額外的代碼。 FWIW:https://github.com/derickbailey/backbone.marionette/blob/master/backbone.marionette.js#L463-488只需從那裏複製並粘貼代碼,然後使用_.extend將它混合到自己的東西中。 :) – 2012-03-08 19:47:37

0

嘗試MyApp.Views.Hours.remove()。這會從dom中刪除視圖及其元素,並將流程中的所有事件處理程序都刪除。然後重新創建小時視圖

+0

它可能是因爲我編寫我的嵌套的方式,但這也不允許我刪除它後添加另一個孩子。我早些時候嘗試過。 – pedalpete 2012-03-08 23:47:13