sendAction (action, params) public
Calls an action passed to a component.
For example a component for playing or pausing music may translate click events into action notifications of "play" or "stop" depending on some internal state of the component:
1 2 3 4 5 6 7 8 9 10 | // app/components/play-button.js export default Ember.Component.extend({ click() { if ( this .get( 'isPlaying' )) { this .sendAction( 'play' ); } else { this .sendAction( 'stop' ); } } }); |
The actions "play" and "stop" must be passed to this play-button
component:
1 2 | {{! app/templates/application.hbs }} {{play-button play=(action "musicStarted") stop=(action "musicStopped")}} |
When the component receives a browser click
event it translate this interaction into application-specific semantics ("play" or "stop") and calls the specified action.
1 2 3 4 5 6 7 8 9 10 11 12 13 | // app/controller/application.js export default Ember.Controller.extend({ actions: { musicStarted() { // called when the play button is clicked // and the music started playing }, musicStopped() { // called when the play button is clicked // and the music stopped playing } } }); |
If no action is passed to sendAction
a default name of "action" is assumed.
1 2 3 4 5 6 | // app/components/next-button.js export default Ember.Component.extend({ click() { this .sendAction(); } }); |
1 2 | {{! app/templates/application.hbs }} {{next-button action=(action "playNextSongInAlbum")}} |
1 2 3 4 5 6 7 8 | // app/controllers/application.js App.ApplicationController = Ember.Controller.extend({ actions: { playNextSongInAlbum() { ... } } }); |
Parameters:
-
action
[String]
- the action to call
-
params
[*]
- arguments for the action
Please login to continue.