ember js从一个控制器/路由发送动作到另一个路由不起作用

时间:2015-06-22 22:54:58

标签: ember.js

我在ember js中遇到一个奇怪的问题,即从一个路由/控制器向另一个路由发送动作。该动作永远不会击中其他路线的动作处理程序。我可以从控制器向控制器发送动作,从同一个控制器发送到同一路径,但不是从一个控制器/路由到另一个路由处理器的附加跳。

最终我想要实现的是从一个路由users.new向另一个路由users.login发送一个动作。该操作不在users.login的控制器中处理,所以我假设它会冒泡到users.login路由操作处理程序。

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:1)

从对等路由发送操作不起作用。解决方案是创建会话服务。

答案 1 :(得分:1)

动作向控制器发泡,然后向其路线发送,然后是该路线的祖先。它们不用于路径之间/之间的通信。

问题是,该动作要做什么?这听起来有点像你真的想要过渡到路线,而不是向它或它的控制器发送动作。如果要将参数与转换一起传递,可以使用查询参数来执行此操作。

如果您可以提供更多详细信息或现有代码,我们可能会为您提供一些特定的代码片段。

如果由于某种原因您确实想要在路由和控制器之间进行通信,则可以使用Ember事件。您使用this.trigger('event')发送并使用object.on('event', handler)收听它们。但是,我怀疑你是否需要解决你想要解决的问题。

我不知道会话服务应该如何解决这个问题。通常,会话服务是以非常控制器/路由等方式跟踪会话(用户)信息的方式。