【发布时间】:2014-07-26 06:36:22
【问题描述】:
我创建了一组嵌套组件。
代码在这里:http://emberjs.jsbin.com/hasehija/2/edit。
HTML:
{{#level-1}}
{{#level-2}}
{{#level-3}}
<button {{action 'handleAction'}}>
Click me (yielded)
</button>
{{/level-3}}
{{/level-2}}
{{/level-1}}
JS:
App.ApplicationController = Ember.Controller.extend({
actions: {
handleAction: function() {
alert('Handled in ApplicationController');
}
}
});
App.Level1Component = Ember.Component.extend({
actions: {
handleAction: function() {
alert('Handled in Level 1');
}
}
});
App.Level2Component = Ember.Component.extend({
actions: {
handleAction: function() {
alert('Handled in Level 2');
}
}
});
App.Level3Component = Ember.Component.extend({
actions: {
handleAction: function() {
alert('Handled in Level 3');
this.set('action', 'handleAction');
this.sendAction();
}
}
});
我想要实现的是通过以下方式冒泡事件:
Level3Component -> Level2Component -> Level1Component -> ApplicationController
不幸的是,我无法处理任何组件内的事件;事件冒泡到ApplicationController。
有没有办法强制组件的操作在整个组件层次结构中冒泡,以便我显示 4 次警报(当然是在添加 this.sendAction 之后)?
再一次,您可以使用以下代码:http://emberjs.jsbin.com/hasehija/2/edit。
【问题讨论】:
标签: javascript events ember.js components event-bubbling