0

这里的 Js bin 片段,冒泡不起作用。 http://emberjs.jsbin.com/sawane/3/edit

余烬文档说,

http://emberjs.com/guides/views/handling-events/

事件从目标视图连续冒泡到每个父视图,直到根视图。

事件也通过控制器冒泡,然后路由层次结构。

我什至没有看到事件被冒泡路由。

4

1 回答 1

0

Ember.Components 是不同的——它们不会自动冒泡动作。

follow-action在您的特定情况下,您必须首先在-component中重新发送操作,然后在user-item-component 中再次发送,然后在 -component 中重新发送user-list,如下所示:

// template
{{user-list action="follow"}}

// component
...
actions: {
  follow: function() {
    this.sendAction() // The default action is 'action'
  }
}
...

这是一个修改过的 jsbin,它一直向上记录: http ://emberjs.jsbin.com/wobawa/1/edit

顺便说一句,使用 Ember 2.0 会更容易一些,因为它为组件中的操作引入了一些新概念。查看 Ember 2.0 RFC 了解更多详细信息。


为了避免手动冒泡,您可以采取一些措施,即使用组件的块语法来保留上下文,然后在其中执行操作:

// my-controller.hbs

// The 'follow' action will be triggered in this context (the controller)

{{#my-component}}
  {{#my-intermediate-component}}
    <button {{action 'follow'}}>Follow!</button>
  {{/my-intermediate-component}}
{{/my-component}}

这是一个显示此内容的 jsbin:http: //emberjs.jsbin.com/juzuru/1/edit

于 2015-02-03T12:04:35.070 回答