I am using Ember.js and I would like to create a catch all route to send the user back to the root of the application if they navigate to a URL that does not match a resource. (I am using the history API) I have implemented this like so:
App.Router.map(function() {
this.resource('things', function() {
this.resource('thing', {path:':thing_id'});
});
this.route('catchAll', { path: ':*' });
this.route('catchAll', { path: ':*/:*' });
this.route('catchAll', { path: ':*/:*/:*' });
});
App.Router.reopen({
location: 'history'
});
App.CatchAllRoute = Ember.Route.extend({
redirect: function() {
this.transitionTo('index');
}
});
App.IndexRoute = Ember.Route.extend({
});
My question is: Can I define a single catch all route that will match any path that has not resolved to a resource irrespective of the number of segments in the path?
I am using Ember.VERSION : 1.0.0-rc.1
:
is the name you are giving to the catch all part. Rather do*wildcardurl
or similar. Like when you are doing things with the params in your model setup. – Westbrook