我有一个视图,我需要动态创建并插入Ember应用程序(off master-v1.0.0-rc.3-178-ge031b24),最近这个视图已经开始产生通知:
弃用:不再支持使用defaultContainer。 [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})
有关正确执行此操作的指导,以删除弃用警告,我们将不胜感激。
答案 0 :(得分:2)
我遇到了同样的问题,但在弃用消息之前,所以Ember正在抛出错误。
看这里https://github.com/emberjs/ember.js/issues/2597
最重要的是,您需要在将要创建子项的视图中使用createChildView
,以便创建正确的父 - 子层次结构。
答案 1 :(得分:1)
更新到v1.0.0-rc.3-292-g39e9ef7后,我开始遇到此问题。对我来说,问题是使用childView
而不是create()
定义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({
希望这可以帮助那些可能在类似情况下发出此通知的人。