transitionTo('route',context)传递上下文基本路由,而不是请求的路由

时间:2012-08-21 21:08:00

标签: ember.js ember-old-router

我正在开发一个Ember应用程序,我希望按一下按钮转换到一个新路由,将一个对象作为该路径的上下文传递。

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

调查(http://jsfiddle.net/fxbXM/2/)似乎上下文被传递到路由器命中的第一条路由,因为它适用于请求的路由。 (请参阅每个路由级别的connectOutlets函数的输出)

这似乎证实了我在调试我的实际app时发现的内容:在Ember的triggerSetupContext函数中有三个enterStates:[Router,'root','create']并且有三个{ {1}}:[myObject,null,null]

如果上下文的顺序相反,那么我会得到我想要的东西!

我在将对象作为上下文传递的方式中出现了一些基本错误吗?我应该使用其他方法吗?

1 个答案:

答案 0 :(得分:5)

有点难以实现什么不起作用...在调试时,我发现了这个:in routers, only states with dynamic segments have a context,所以在create路由中,我添加了“:widget_id”,它似乎工作。见http://jsfiddle.net/Sly7/EqyUa/

似乎如果您的路线中没有任何动态细分,则无法向其传递上下文。如果我能确认这一点会很棒......

更新

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