Voici un exemple:
Je définis la dernière route dans mon routeur à l'aide d'un générique route voir: http://emberjs.com/guides/routing/defining-your-routes/#toc_wildcard-globbing-routes
J'ai un /not-found
route, voir la dernière route définie dans mon routeur /*path
pour attraper une chaîne de texte, voir: https://github.com/pixelhandler/blog/blob/master/client/app/router.js#L19
Router.map(function () {
this.route('about');
this.resource('posts', function () {
this.resource('post', { path: ':post_slug' });
});
this.resource('admin', function () {
this.route('create');
this.route('edit', { path: ':edit_id' });
});
this.route('not-found', { path: '/*path' });
});
Cet itinéraire fait une redirection /not-found
, voir: https://github.com/pixelhandler/blog/blob/master/client/app/routes/not-found.js
import Ember from 'ember';
export default Ember.Route.extend({
redirect: function () {
var url = this.router.location.formatURL('/not-found');
if (window.location.pathname !== url) {
this.transitionTo('/not-found');
}
}
});
Aussi l'itinéraire d'avoir un crochet (par exemple, model
, beforeModel
, afterModel
) qui se traduit par le refus de la promesse, peuvent utiliser l' error
d'action pour la transition à la 404.
actions: {
error: function (error) {
Ember.Logger.error(error);
this.transitionTo('/not-found');
}
}
Ce qui rend un not-found
modèle, voir: https://github.com/pixelhandler/blog/blob/master/client/app/templates/not-found.hbs
<h1>404 Not Found</h1>
<p>
Perhaps you have a link that has changed, see {{#link-to 'posts'}}Archives{{/link-to}}.
</p>
Voici ma page 404: http://pixelhandler.com/not-found