2013-01-16 107 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的错误。