2

我有一个观点,我需要动态创建并插入 Ember 应用程序(关闭 master - v1.0.0-rc.3-178-ge031b24),最近这个视图已经开始产生通知:

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

我已经做了一些尝试来修改我正在做的事情以纠正我的实施,但我无法找到我需要做的事情。

目前,我在路由设置中将一个新的 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})

任何有关执行此操作的正确方法的指导,以消除弃用警告,我们将不胜感激。

4

2 回答 2

2

我有同样的问题,但在弃用消息之前,所以 Ember 抛出了一个错误。

看这里https://github.com/emberjs/ember.js/issues/2597

最重要的是,您需要createChildView在将创建子视图的内部使用,以便创建正确的父子层次结构。

于 2013-05-06T21:48:25.890 回答
1

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

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({

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

于 2013-05-24T16:04:45.313 回答