Ember.TargetActionSupport Class packages/ember-runtime/lib/mixins/target_action_support.js:12
PRIVATE
Extends: Ember.Mixin
Defined in: packages/ember-runtime/lib/mixins/target_action_support.js:12
Module: ember-runtime
Ember.TargetActionSupport
is a mixin that can be included in a class
to add a triggerAction
method with semantics similar to the Handlebars
{{action}}
helper. In normal Ember usage, the {{action}}
helper is
usually the best choice. This mixin is most often useful when you are
doing more complex event handling in View objects.
See also Ember.ViewTargetActionSupport
, which has
view-aware defaults for target and actionContext.
apply
(obj)
private
Parameters:
- obj
Returns:
- applied object
create
(arguments)
public
static
Parameters:
- arguments
detect
(obj)
Boolean
private
Parameters:
- obj
Returns:
- Boolean
reopen
(arguments)
private
Parameters:
- arguments
triggerAction
(opts)
Boolean
private
Send an action
with an actionContext
to a target
. The action, actionContext
and target will be retrieved from properties of the object. For example:
1 2 3 4 5 6 7 8 9 |
App.SaveButtonView = Ember.View.extend(Ember.TargetActionSupport, { target: Ember.computed.alias('controller'), action: 'save', actionContext: Ember.computed.alias('context'), click: function() { this.triggerAction(); // Sends the `save` action, along with the current context // to the current controller } }); |
The target
, action
, and actionContext
can be provided as properties of
an optional object argument to triggerAction
as well.
1 2 3 4 5 6 7 8 9 10 |
App.SaveButtonView = Ember.View.extend(Ember.TargetActionSupport, { click: function() { this.triggerAction({ action: 'save', target: this.get('controller'), actionContext: this.get('context') }); // Sends the `save` action, along with the current context // to the current controller } }); |
The actionContext
defaults to the object you are mixing TargetActionSupport
into.
But target
and action
must be specified either as properties or with the argument
to triggerAction
, or a combination:
1 2 3 4 5 6 7 8 9 |
App.SaveButtonView = Ember.View.extend(Ember.TargetActionSupport, { target: Ember.computed.alias('controller'), click: function() { this.triggerAction({ action: 'save' }); // Sends the `save` action, along with a reference to `this`, // to the current controller } }); |
Parameters:
- opts Object
- (optional, with the optional keys action, target and/or actionContext)
Returns:
- Boolean
- true if the action was sent successfully and did not return false