2013-04-12 83 views
1

我在控制器上撥打destroy()當我離開某個視圖(不是視圖控制器,而是一個額外的控制器,我使用)。 如果我再回去在同一視圖,控制器仍然存在,它具有屬性:破壞Ember控制器

_didCallDestroy: true 
isDestroyed: true 
isDestroying: true 

全部設置爲預期,但我認爲仍然是綁定到他們。它沒有破壞,因爲它的內容仍然保存着數據?什麼可能導致這個?

+0

爲什麼要手動調用destroy?只有很少的情況下,當你想自己做。這是一種通常由EmberJS框架唯一調用的方法。 – mavilein

+0

@mavilein我自己手動創建了它們,在這些情況下,您還需要手動刪除它們。 – Rudi

回答

1

上面提到的附加陣列控制器放置在一個數組中。解決方案不僅要銷燬控制器,還要將陣列重置爲[]:

this.get('dataSets').forEach(function (ds) { 
    ds.destroy(); 
}); 
this.set('dataSets', []);