这里的 Js bin 片段,冒泡不起作用。 http://emberjs.jsbin.com/sawane/3/edit
余烬文档说,
http://emberjs.com/guides/views/handling-events/
事件从目标视图连续冒泡到每个父视图,直到根视图。
事件也通过控制器冒泡,然后路由层次结构。
我什至没有看到事件被冒泡路由。
这里的 Js bin 片段,冒泡不起作用。 http://emberjs.jsbin.com/sawane/3/edit
余烬文档说,
http://emberjs.com/guides/views/handling-events/
事件从目标视图连续冒泡到每个父视图,直到根视图。
事件也通过控制器冒泡,然后路由层次结构。
我什至没有看到事件被冒泡路由。
Ember.Component
s 是不同的——它们不会自动冒泡动作。
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