Class Ember.ControllerMixin
privatereplaceRoute (name, models) public
Defined in packages/ember-routing/lib/ext/controller.js:155
- 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.
Transition into another route while replacing the current URL, if possible.
This will replace the current history entry instead of adding a new one.
Beside that, it is identical to transitionToRoute
in all other respects.
1 2 |
aController.replaceRoute('blogPosts'); aController.replaceRoute('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:
1 |
aController.replaceRoute('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:
1 |
aController.replaceRoute('blogPost', 1); |
Multiple models will be applied last to first recursively up the route tree.
app/router.js | |
1 2 3 4 5 |
Router.map(function() { this.route('blogPost', { path: ':blogPostId' }, function() { this.route('blogComment', { path: ':blogCommentId', resetNamespace: true }); }); }); |
1 2 |
aController.replaceRoute('blogComment', aPost, aComment); aController.replaceRoute('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.
1 2 |
aController.replaceRoute('/'); aController.replaceRoute('/blog/post/1/comment/13'); |
send (actionName, context) public
Inherited from Ember.ActionHandler packages/ember-runtime/lib/mixins/action_handler.js:167
- 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/routes/welcome.js | |
1 2 3 4 5 6 7 8 9 10 11 12 |
import Route from '@ember/routing/route'; export default Route.extend({ actions: { playTheme() { this.send('playMusic', 'theme.mp3'); }, playMusic(track) { // ... } } }); |
transitionToRoute (name, models, options) public
Defined in packages/ember-routing/lib/ext/controller.js:74
- 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:
1 2 |
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:
1 |
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:
1 |
aController.transitionToRoute('blogPost', 1); |
Multiple models will be applied last to first recursively up the route tree.
app/router.js | |
1 2 3 4 5 |
Router.map(function() { this.route('blogPost', { path: ':blogPostId' }, function() { this.route('blogComment', { path: ':blogCommentId', resetNamespace: true }); }); }); |
1 2 |
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.
1 2 3 |
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.
1 2 3 4 5 6 |
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.