【问题标题】:Can emberjs router states handle events that child cannot handle?emberjs 路由器状态可以处理孩子无法处理的事件吗?
【发布时间】:2012-10-18 06:34:15
【问题描述】:

像一个典型的分层状态机, 我想获取子状态无法处理但父状态可以在父状态中处理的事件。 我收到错误“无法响应状态 Y 中的事件 xyz”

    App.Router = Ember.Router.extend 
      location: "hash"
      enableLogging: true
      x: Ember.Route.extend
        xyz : (router, event) ->
          # Some handling code
        y : Ember.Route.extend()

在上面的代码中,在 y 状态下是否有一些 xyz 发生的方式,它可以被 x 处理? 我认为 HSM 会这样做。但它不起作用

【问题讨论】:

  • 它应该是这样工作的,我会检查路由是否嵌套正确,如果不是,您可以发布您的实际代码。
  • 它非常接近实际代码,我会尝试放一个jsfiddle,但案例是这个案例的镜像。
  • 还有任何这种分层处理有效的参考资料?
  • 你有根路由吗?通常事件是通过状态冒泡的,看起来很奇怪,它对你不起作用......确实会欣赏小提琴/jsbin
  • @louiscoquio 点,接受正确答案。

标签: ember.js ember-old-router


【解决方案1】:

答案是肯定的,路由器是一个分层状态机,事件将传递当前状态,然后传递给它的父级,直到它被处理。如果当前路径中的任何状态都未处理该事件,则会引发错误。

如果这对您不起作用,则说明您的代码中某处存在错误。

【讨论】:

  • 它现在可以工作了,我想是由于缩进不良而出现的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-07
  • 2020-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多