Ember.js transitiono(';route';context)传递的是上下文基路由,而不是请求的路由

Ember.js transitiono(';route';context)传递的是上下文基路由,而不是请求的路由,ember.js,ember-old-router,Ember.js,Ember Old Router,我正在开发一个余烬应用程序,我希望点击一个按钮,转换到一个新的路由,通过一个对象作为该路由的上下文 问题是,无论我如何尝试传递上下文,当我到达我要转换的路线时,它总是丢失 调查()当路由器运行到请求的路由时,上下文似乎被传递到路由器点击的第一条路由。(参见各管线级别的connectOutlets功能输出) 这似乎证实了我在调试我的实际应用程序时所发现的情况:在Ember的triggerSetupContext函数中有三个EnterState:[Router,'root','create']和三个

我正在开发一个余烬应用程序,我希望点击一个按钮,转换到一个新的路由,通过一个对象作为该路由的上下文

问题是,无论我如何尝试传递上下文,当我到达我要转换的路线时,它总是丢失

调查()当路由器运行到请求的路由时,上下文似乎被传递到路由器点击的第一条路由。(参见各管线级别的connectOutlets功能输出)

这似乎证实了我在调试我的实际应用程序时所发现的情况:在Ember的triggerSetupContext函数中有三个
EnterState
:[Router,'root','create']和三个
上下文
:[myObject,null,null]

如果上下文顺序相反,那么我会在我想要的地方得到我想要的


我在传递对象作为上下文的方式上是否犯了一些基本错误?我应该使用另一种方法吗?

要想知道什么不起作用有点棘手。。。在调试时,我发现:,所以在
创建
路径中,我添加了“:widget_id”,它似乎可以工作。看

似乎如果您的路线中没有任何动态段,就无法向其传递上下文。如果我能确认这一点就太好了

更新


在github repo上搜索时,我发现了以下问题:。在最后一条评论中,Yehuda解释了为什么在没有动态段的情况下将上下文传递给
connectOutlets
是没有意义的。

源代码中有一个很好的捕获,希望在发布前会有所改变。更新的答案,我认为这不会改变。您已经将widget_id添加到路径中,但是您如何在路由器中访问该信息?假设您想使用模型挂钩更新您的模型,现在如何访问widget_id来更新模型?@flash现在还不确定,但我认为模型挂钩有一个参数。(通常命名为params)。然后你可以使用params.widget_id访问widget_id。无论如何,这个答案不再是最新的,我将根据RC1更新它。我读了一些书,发现路由器中的模型钩子将作为params对象接收url参数,我尝试了这个方法,但没有看到模型钩子在路由器中被调用,