Ember.TargetActionSupport Class packages/ember-runtime/lib/mixins/target_action_support.js:12


PRIVATE

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.

Show:

Methods

Show:

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