2013-01-16 103 views
0

我使用的是containerview,我使用currentview財產動態添加和刪除上下文的形式,有點像這樣:ember.js containerview涉及

showSomeForm: -> 
    form = @get('theContainerView') 

    if form.get('currentView') 
    form.set('currentView', null) 

    contextualForm = App.Form.create 
        controller: App.Controller.create() 

showSomeOtherForm: -> 
    form = @get('theContainerView') 

我擔心的就是內存泄漏,每次創建控制器如果這是做事的最佳方式。

一旦用戶完成了上下文形式,我還將currentView設置爲null以隱藏它。

有沒有更好的方法來做到這一點,我目前在ember v1.0.0-pre.2-54。

回答

1

你不應該擔心這裏的內存泄漏。

您正在將控制器分配給插入到currentView中的視圖,而不是以其他方式持有該視圖的引用。當視圖被拆除(當容器視圖的currentView被設置爲null或其他東西)時,Ember將會destroy它。這將釋放對它的任何剩餘引用,這將使GC收集它,並將引用的控制器與它一起收集。

如果由於某種原因,這可能是一個Ember的錯誤。