ember.js containerview关注点

时间:2013-01-16 22:29:08

标签: ember.js

我正在使用一个containerview,我使用currentview属性动态添加和删除上下文表单,如下所示:

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 个答案:

答案 0 :(得分:1)

你不必担心内存泄漏。

您正在将控制器分配给插入currentView的视图,而不是保留对它的引用。当视图被拆除时(当容器视图的currentView设置为null或其他内容时),Ember将destroy它。这将释放对它的任何剩余引用,这将使GC收集它,并将引用的控制器与它一起收集。

如果出于某种原因这不是真的,那可能是一个Ember错误。