Js bin片段在这里,冒泡不起作用。 http://emberjs.jsbin.com/sawane/3/edit
ember文档说,
http://emberjs.com/guides/views/handling-events/
事件从目标视图连续冒泡到每个父视图,直到根视图。
事件还会通过控制器冒泡,然后路由层次结构。
我甚至不会看到被冒泡的事件。
答案 0 :(得分:0)
Ember.Component
是不同的 - 他们不会自动冒泡行动。
在您的特定情况下,您必须先在follow-action
- 组件中重新发送操作,然后再在user-item
- 组件中重新发送操作,然后再在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