ember-route-alias

Ember addon to create multiple paths for the same route.

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
ember-route-alias
29110.1.75 years ago7 years agoMinified + gzip package size for ember-route-alias in KB

Readme

ember-route-alias
Build Status npm version Ember Observer Score Code Climate
This Ember addon makes it easy to create multiple paths to the same route. By default it uses the same set of assets as the original route, but individual assets for each route can be overidden.
It also includes a simple {{#rel-link-to}} helper to make template reuse easier.
Warning: This addon monkey-patches the private Ember.RouterDSL#route method. As a result this addon can easily be broken by changes in Ember core. It is, however, used by a major product in the Ember ecosystem and will be kept up-to-date as best as possible.

Usage

ember install ember-route-alias
In app.js:
import RouteAliasResolver from 'ember-route-alias/mixins/route-alias-resolver';

App = Ember.Application.extend({
  /* ... */
  Resolver: Resolver.extend(RouteAliasResolver)
});

In router.js:
Router.map(function() {
  this.route('one', function() {
    this.route('a', function () {
      this.route('i', function() {});
      this.route('ii');
      this.route('iii');

      this.alias('alias-i', '/alias-i', 'i');
    });
    this.route('b');
    this.route('c');

    this.alias('alias-a', '/alias-a', 'a');
  });
  this.route('two');
  this.route('three');

  this.alias('alias-one', '/alias-one', 'one');
  this.alias('not-one', '/not-one', 'alias-one');
});

Electively you may add assets for any of the aliased routes by their name and it will load those assets instead. (The custom resolver is placed last in the queue.) For example, in templates/alias-one.hbs:
This template will be loaded instead of <pre>templates/one.hbs</pre>.

{{outlet}}

Running the sample application

The included sample application contains complete usage examples.

Running tests

  • npm run test

Pushing an updated sample app

ember github-pages:commit --message "Update demo app."
git push origin gh-pages:gh-pages