我有以下控制器,我想使用 send 冒泡一个事件
App.PersonController = Ember.ObjectController.extend({
page: function(page) {
var model = PersonApp.Page.create({id: page});
this.send("person.page", model); //should bubble up ...
}
});
这是我的路线设置
PersonApp.Router.map(function(match) {
this.resource("person", { path: "/" }, function() {
this.route("page", { path: "/page/:page_id" });
});
});
这是简单的页面模型(基本上是垫片)
PersonApp.Page = Ember.Object.extend({
});
虽然我正在使用路由“person.page”并且我正在传递一个有效的模型,但我收到以下错误(似乎路由器没有这个路由?)
未捕获的错误:没有处理事件“person.page”。
如果它有助于调试我在控制器内部发现的控制器/路由器关系,如果我转储 this.get('target') ...
_debugContainerKey:“路由器:主”
如果我进一步挖掘......并打印这个
this.get('target').get('router')
我在 currentHandlerInfos 数组下看到一个带有我的路由的路由器......虽然我不确定我是否应该这么深
...另一个小更新
如果我这样做(完全成熟),它似乎会修改 window.location 但我在路线上的模型/设置控制器钩子永远不会被击中
this.get('target').get('router').transitionTo(route, model);