Class Ember.ControllerMixin
publicEmber.ControllerMixin
provides a standard interface for all classes that
compose Ember's controller layer: Ember.Controller
,
Ember.ArrayController
, and Ember.ObjectController
.
send (actionName, context) public
Inherited from Ember.ActionHandler packages/ember-runtime/lib/mixins/action_handler.js:179
- actionName
- String
The action to trigger
- context
- *
a context to send with the action
Triggers a named action on the ActionHandler
. Any parameters
supplied after the actionName
string will be passed as arguments
to the action target function.
If the ActionHandler
has its target
property set, actions may
bubble to the target
. Bubbling happens when an actionName
can
not be found in the ActionHandler
's actions
hash or if the
action target function returns true
.
Example
App.WelcomeRoute = Ember.Route.extend({
actions: {
playTheme: function() {
this.send('playMusic', 'theme.mp3');
},
playMusic: function(track) {
// ...
}
}
});
transitionToRoute (name, models, options) public
Defined in packages/ember-routing/lib/ext/controller.js:168
- name
- String
the name of the route or a URL
- models
- ...Object
the model(s) or identifier(s) to be used while transitioning to the route.
- options
- Object
optional hash with a queryParams property containing a mapping of query parameters
Transition the application into another route. The route may be either a single route or route path:
aController.transitionToRoute('blogPosts');
aController.transitionToRoute('blogPosts.recentEntries');
Optionally supply a model for the route in question. The model
will be serialized into the URL using the serialize
hook of
the route:
aController.transitionToRoute('blogPost', aPost);
If a literal is passed (such as a number or a string), it will
be treated as an identifier instead. In this case, the model
hook of the route will be triggered:
aController.transitionToRoute('blogPost', 1);
Multiple models will be applied last to first recursively up the resource tree.
App.Router.map(function() {
this.resource('blogPost', {path:':blogPostId'}, function() {
this.resource('blogComment', {path: ':blogCommentId'});
});
});
aController.transitionToRoute('blogComment', aPost, aComment);
aController.transitionToRoute('blogComment', 1, 13);
It is also possible to pass a URL (a string that starts with a
/
). This is intended for testing and debugging purposes and
should rarely be used in production code.
aController.transitionToRoute('/');
aController.transitionToRoute('/blog/post/1/comment/13');
aController.transitionToRoute('/blog/posts?sort=title');
An options hash with a queryParams
property may be provided as
the final argument to add query parameters to the destination URL.
aController.transitionToRoute('blogPost', 1, {
queryParams: {showComments: 'true'}
});
// if you just want to transition the query parameters without changing the route
aController.transitionToRoute({queryParams: {sort: 'date'}});
See also replaceRoute.