2013-02-15 28 views
0

這是我的項目體系結構問題 - 它是我的第一個骨幹項目,我可能做錯了什麼。當我第二次實例化視圖時,視圖事件被設置了兩次

在我所有的項目路線回調,我有:

myroute: function() { 
    this.currentView = new MyCustomView(); 
}, 

mysecondroute: function() { 
    this.currentView = new MySecondView() 
}, 
//... 

所以在所有航線回調我實例一些看法。該視圖具有調用render方法的initialze方法。它的工作原理除了每次實例化相同視圖時,所有視圖事件(在events: {}中聲明)都是「綁定的」。所以當我訪問相同的路線兩次事件對應於這條路線的視圖被激發兩次...

也許我應該在每個路由調用實例化新視圖 - 但我怎麼能做到這一點?我的意思是什麼標準?也許我應該以某種方式卸載當前的視圖 - 是否有任何方法可以做到這一點?

回答

0

我認爲你必須添加到解除綁定所有事件在時間的方法來關閉視圖

這樣

close : function() { 
    //your code to clean everything before closing the view 
    this.remove(); 
    this.unbind(); 
} 

所以下一次的觀點被稱爲將被添加的事件在視圖初始化期間,這就是爲什麼你有事件被調用兩次。 initialize方法將事件綁定到.el元素。你需要確保你在某些時候取消綁定。

相關問題