3

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

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

然后当用户按下按钮时,会触发一个控制器动作,我希望能够调用类似的东西

App.Modal.create().appendTo("modal");

显然这是行不通的,因为 appendTo 需要一个 jquery 选择器,但是有人知道更好的方法吗?

编辑:

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

4

1 回答 1

2

与其通过控制器操作处理按钮按下,不如让它冒泡到路由器。由于您的出口是在application.hbs其中定义的,因此在ApplicationRoute. 就像是:

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

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

于 2013-07-03T17:53:57.490 回答