使用最新的 Ember,以下简单的 ContainerView 会导致错误:
弃用:不再支持使用 defaultContainer。 [defaultContainer#lookup] 请参阅:http://git.io/EKPpnA
我想这与我将视图附加到控制器中的方式有关,
请注意,如果子视图中的模板是内联编译的,则不会发生错误,只有在向视图的“template”属性提供外部模板时才会发生错误。
http://jsbin.com/uqawux/2/edit
Thanks
该弃用消息引用了此gist,如果你看迁移路径:(WIP)部分,它有以下文本:
如果您在父视图的上下文之外创建视图(这
可能不推荐,但它正在发生)你会想要
确保通过容器本身实例化您的视图。
this.container.lookup('view:apple')
// will provide a instance of apple view.
因此,您需要更新代码以使用容器而不是App.FooView.create()
.
App.IndexController = Ember.Controller.extend({
show: function() {
var v = this.container.lookup('view:foo');
v.appendTo(App.rootElement);
}
});
根据您的版本,您将收到新的警告消息:
弃用:直接在控制器上实现的操作处理程序是
已弃用,有利于动作处理程序actions
对象(显示于
)
在这种情况下,将您的操作放在actions
object:
App.IndexController = Ember.Controller.extend({
actions: {
show: function() {
var v = this.container.lookup('view:foo');
v.appendTo(App.rootElement);
}
}
});
这是使用最新 ember 版本更新的 jsbin,没有警告http://jsbin.com/uqawux/4/edit
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)