Ember.Component
s are different - they don't bubble actions automatically.
In your particular case, you will have to re-send the action first in your follow-action
-component, then again in the user-item
-component, and then in the user-list
-component, like so:
// template
{{user-list action="follow"}}
// component
...
actions: {
follow: function() {
this.sendAction() // The default action is 'action'
}
}
...
Here is a modified jsbin which logs all the way up:
http://emberjs.jsbin.com/wobawa/1/edit
As an aside, this will be a bit easier with Ember 2.0, as it introduces some new concepts for actions in components. Check out the Ember 2.0 RFC for some more details on that.
Something you could do to avoid having to bubble it manually, is using the block syntax for your components to preserve the context, and then have the action in there:
// 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}}
Here is a jsbin showing this: http://emberjs.jsbin.com/juzuru/1/edit