5

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

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

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

这似乎证实了我在调试实际应用程序时的想法:在 Ember 的 triggerSetupContext 函数中有三个enterStates:[Router, 'root', 'create'] 并且有三个contexts:[myObject, null, null]

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

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

4

1 回答 1

5

意识到什么不起作用有点棘手......在调试时,我发现:在路由器中,只有具有动态段的状态才有上下文,所以在create路由中,我添加了“:widget_id”,它似乎工作。见http://jsfiddle.net/Sly7/EqyUa/

似乎如果您的路线中没有任何动态段,则无法将上下文传递给它。如果我能得到确认,那就太好了……

更新

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

于 2012-08-21T22:29:56.507 回答