我正在尝试在我的应用程序中显示模式对话框,并希望能够以编程方式将其呈现到页面。我的根模板看起来像这样
{{outlet}}
{{outlet "modal"}}
然后,当用户按下按钮时,会触发控制器操作,我希望能够调用类似
的内容App.Modal.create().appendTo("modal");
显然,由于appendTo采用了一个jquery选择器,但有没有人知道更好的方法呢?
我也可以使用appendTo方法,但每次我都得到一个弃用的警告不能附加到默认容器。我正在使用ContainerView并附加它然后更新容器视图但没有任何效果。
答案 0 :(得分:2)
不是通过控制器动作处理按钮按下,而是让它冒泡到路由器。由于您的插座是在application.hbs
中定义的,因此在ApplicationRoute
处理事件是有意义的。类似的东西:
App.ApplicationRoute = Ember.Route.extend({
events: {
openModal: function() {
this.render('modal', { into: 'application', outlet: 'modal' });
}
}
});
这会将您的模态视图/模板呈现到modal
模板的application
出口。