Class Ember.ControllerMixin

private

Show:

Module: ember
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 /).

1
2
aController.replaceRoute('/');
aController.replaceRoute('/blog/post/1/comment/13');
Module: ember
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) {
      // ...
    }
  }
});
Module: ember
moduleName
String
the module name that the template only component represents, this will be used for debugging purposes

This utility function is used to declare a given component has no backing class. When the rendering engine detects this it is able to perform a number of optimizations. Templates that are associated with templateOnly() will be rendered as is without adding a wrapping <div> (or any of the other element customization behaviors of @ember/component). Specifically, this means that the template will be rendered as "outer HTML".

In general, this method will be used by build time tooling and would not be directly written in an application. However, at times it may be useful to use directly to leverage the "outer HTML" semantics mentioned above. For example, if an addon would like to use these semantics for its templates but cannot be certain it will only be consumed by applications that have enabled the template-only-glimmer-components optional feature.

Module: ember
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 /).

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.