我可以将视图渲染到Ember.js中的插座吗?

时间:2013-07-02 21:42:34

标签: javascript ember.js

我正在尝试在我的应用程序中显示模式对话框,并希望能够以编程方式将其呈现到页面。我的根模板看起来像这样

{{outlet}}
{{outlet "modal"}}

然后,当用户按下按钮时,会触发控制器操作,我希望能够调用类似

的内容
App.Modal.create().appendTo("modal");

显然,由于appendTo采用了一个jquery选择器,但有没有人知道更好的方法呢?

编辑:

我也可以使用appendTo方法,但每次我都得到一个弃用的警告不能附加到默认容器。我正在使用ContainerView并附加它然后更新容器视图但没有任何效果。

1 个答案:

答案 0 :(得分:2)

不是通过控制器动作处理按钮按下,而是让它冒泡到路由器。由于您的插座是在application.hbs中定义的,因此在ApplicationRoute处理事件是有意义的。类似的东西:

App.ApplicationRoute = Ember.Route.extend({
  events: {
    openModal: function() {
      this.render('modal', { into: 'application', outlet: 'modal' });
    }
  }
});

这会将您的模态视图/模板呈现到modal模板的application出口。