我有一個有兩個視圖的backbonejs應用程序。它看起來像這樣:Backbonejs:如何刪除視圖時取消綁定集合綁定?
<body>
<header></header>
<div id="content"></div>
</body>
每次加載視圖時,應用程序都會通過完全覆蓋#content的內容來覆蓋當前視圖。
// Like this...
$('#content').html(new primaryView().render());
// ...and this.
$('#content').html(new secondaryView().render());
該應用程序具有全局集合。
App.Collection();
輔助視圖根據全局集合修改自身。因此,它將函數綁定到視圖初始化函數中的App.Collection上的'add'事件';
App.Collection.bind('add', function(){
console.log('Item added');
});
這導致我的問題。每次加載輔助視圖時,一個新函數綁定到App.Collection的add事件。如果我從主視圖轉到次視圖三次,則每次將項添加到App.Collection時,該函數將觸發三次。
我在做什麼錯? 我可以看到,如果在視圖上有一個未初始化函數,我會怎麼做。 我可以看到,如果我從未刪除視圖,一旦它被加載,我可以做到這一點。 我可以看到,如果我可以像Jquery中那樣命名空間事件,我該怎麼做。 (通過在綁定之前解除綁定)。
剛剛找到了Derick Bailey的一篇文章。聽起來像一個體面的解決方案。 http://lostechies.com/derickbailey/2011/09/15/zombies-run-managing-page-transitions-in-backbone-apps/ – janjarfalk 2012-02-20 15:37:08