在 pre2 中,假设我在路由器外部有这个应用程序代码:
var controller = App.MyController.create();
controller.content = [...];
App.get('router').get('applicationController').connectOutlet({
outletName: 'modal',
controller: controller,
viewClass: App.MyView,
context: controller
});
也就是说,我用我的数据填充添加到“应用程序”模板中的名为“模态”的插座。
现在,在 pre4 中,我没有参考路由器创建的控制器。您将如何填充路由器外部的插座?
我可以要求路由器进行转换,但我不想修改 URL,因为我只是在当前内容上打开一个模式。
编辑:
这就是我想出的临时修复方法,通过从 App.Router.router 对象查找应用程序视图.. 显然这是一个肮脏的黑客,有人知道在 pre4 中最好和正确的方法吗?
var controller = App.MyController.create();
controller.content = this.get('content');
var theView = App.MyView.create();
theView.set('controller', controller);
App.Router.router.currentHandlerInfos[0].handler.router._activeViews.application[0].connectOutlet('modal', theView);