Javascript 如何重新配置视图以不使用Ember JS中的defaultContainer

Javascript 如何重新配置视图以不使用Ember JS中的defaultContainer,javascript,ember.js,Javascript,Ember.js,我有一个视图需要动态创建并插入到Ember应用程序中(off master-v1.0.0-rc.3-178-ge031b24),最近该视图开始生成通知: 弃用:不再支持使用defaultContainer。 [默认容器#查找] 我已经做了一些尝试来修改我正在做的事情,以纠正我的实现,但是我还没有找到我需要做的事情 目前,我正在将一个新的ViewContainer附加到“路线设置”上的控制器: App.ThingRoute = Em.Route.extend setupDetailContai

我有一个视图需要动态创建并插入到Ember应用程序中(off master-v1.0.0-rc.3-178-ge031b24),最近该视图开始生成通知:

弃用:不再支持使用defaultContainer。 [默认容器#查找]

我已经做了一些尝试来修改我正在做的事情,以纠正我的实现,但是我还没有找到我需要做的事情

目前,我正在将一个新的ViewContainer附加到“路线设置”上的控制器:

App.ThingRoute = Em.Route.extend
  setupDetailContainers: (controller) ->
    controller.set('imageContainer', Em.ContainerView.create())
    controller.get('imageContainer').appendTo(App.rootElement)
然后在控制器中,当他们单击图像缩略图时,将插入完整大小的图像:

showFullImage: (image) ->
  image_full = image.asset_url.replace(':size', 'original')
  container = @get('imageContainer')
  container.pushObject App.ShowImageView.create({image: image_full})

如果您能提供正确方法的指导,以便删除弃用警告,我们将不胜感激。

我也遇到了同样的问题,但在弃用消息之前,因此Ember抛出了一个错误

看这里


底线是,您需要在要创建子视图的视图中使用
createChildView
,以便创建正确的父子层次结构。

在更新到v1.0.0-rc.3-292-g39e9ef7后,我开始遇到这个问题。对我来说,问题源于使用
create()
而不是
extend()
定义
childView
。例如,我做了:

App.FooView = Ember.View.extend({
    templateName: 'fooTemplate'
    , childViews: ['barView']
    , barView: Ember.View.create({
        ... bindings and stuff ....
    })
    .... more and more ....
});
。。。当我改变线路时,我收到的通知消失了:

    , barView: Ember.View.create({
。。。致:

    , barView: Ember.View.extend({

希望这能帮助其他可能在类似情况下遇到此通知的人。

您使用的是什么ember版本?噢,对不起,v1.0.0-rc.3-178-ge031b24(基本上是今天的大师),我没有意识到我没有包括它。“底线是,你需要在你将要创建子视图的视图中使用createChildView,以便正确的父视图”-我真的不明白这一点。我的容器是:App.LayoutContainer。我尝试了:App.LayoutContainer.createChildView(App[index]);其中索引类似于:“App.HeaderView”,一个视图实例。但这还不够,因为动态视图是创建的,但没有作为子视图添加到容器中。