简单的 ContainerView 导致“不再支持使用 defaultContainer”。

2023-11-29

使用最新的 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(使用前将#替换为@)

简单的 ContainerView 导致“不再支持使用 defaultContainer”。 的相关文章

随机推荐