在本次提交的注释中,Ember 团队非常清楚地表明这App.__container__.lookup()
不是获取控制器的方法。相反,我们应该使用该needs
属性。
我理解这背后的基本原理,以及访问单例控制器的惯用方式。
但是,在我的应用程序中,我在某些情况下需要实例控制器。在这种情况下,我App.__container__.lookupFactory()
用来获取原型,然后我可以create()
或extend()
有没有更好的方法来做到这一点(不使用__container__
?
编辑:
这是一个示例用例。
App.MyContainerView = Ember.ContainerView.extend
...
addChildView: ->
@get("content").pushObject(App.MyChildView.create(...))
上面的示例将一个新视图推送到堆栈上(允许动态创建视图)
但是,由于使用App.MyChildView.create()
. 在我们将 Ember 部分集成到现有应用程序的情况下尤其如此。
创建这些视图的方法是:
App.__container__.lookupFactory("view:my_child").create()
在这种情况下,一切都会好起来的。
存在其他用例,用于在路由器上下文之外创建实例控制器。但想法是相同的。