API Docs for: 1.0 pre
Show:

Ember.ViewTargetActionSupport Class

Ember.ViewTargetActionSupport is a mixin that can be included in a view class to add a triggerAction method with semantics similar to the Handlebars {{action}} helper. It provides intelligent defaults for the action's target: the view's controller; and the context that is sent with the action: the view's context.

Note: 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 custom View subclasses.

For example:

App.SaveButtonView = Ember.View.extend(Ember.ViewTargetActionSupport, {
  action: 'save',
  click: function() {
    this.triggerAction(); // Sends the save action, along with the current context
                          // to the current controller
  }
});

The action can be provided as properties of an optional object argument to triggerAction as well.

App.SaveButtonView = Ember.View.extend(Ember.ViewTargetActionSupport, {
  click: function() {
    this.triggerAction({
      action: 'save'
    }); // Sends the save action, along with the current context
        // to the current controller
  }
});

Item Index

Properties

Methods

apply

(
  • obj
)

Parameters:

  • obj Object

Returns:

applied object

detect

(
  • obj
)
Boolean

Parameters:

  • obj Object

Returns:

Boolean:

reopen

(
  • arguments
)

Parameters:

  • arguments Object multiple

triggerAction

(
  • opts
)
Boolean

Send an action with an actionContext to a target. The action, actionContext and target will be retrieved from properties of the object. For example:

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.

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:

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 Hash

    (optional, with the optional keys action, target and/or actionContext)

Returns:

Boolean:

true if the action was sent successfully and did not return false