Modèle d'erreur par défaut sur Ember ne charge pas

Je ne sais pas si je fais quelque chose qui ne va pas, mais à ma demande, j'ai quelque chose comme ça:

actions: { error: function(error, transition) { var self = this; metadata = { 'timeout': { action: function(error, transition) { BootstrapDialog.alert({message: 'Request Timeout!'}); } }, 'forbidden': { action: function(error, transition) { self.transitionTo('companies'); } }, 'unauthorized': { action: function(error, transition) { window.location.replace(error.responseJSON.redirect_url); } }, 'bad gateway': { action: function(error, transition) { throw new Error("Error"); } } }; if(error.statusText.toLowerCase() in metadata) { metadata[error.statusText.toLowerCase()].action(error, transition); } } } 

Et j'ai un temple error.hbs, que l'on espère être déclenché lors d'une erreur de «mauvaise passerelle», mais le modèle ne se charge pas, il y a une façon spécifique de charger le modèle d'erreur par défaut?

Merci.

Si vous définissez le gestionnaire d'erreur d'application, vous devez générer le modèle d'erreur.

 App.ApplicationRoute = Ember.Route.extend({ actions: { error: function() { this.render('error', { into: 'application' }); } } }); 

Un exemple est disponible ici .

Vous pouvez supprimer le gestionnaire d'erreur et vérifier comment le modèle d'erreur est rendu par braise.

Il suffit de return true donc l'erreur continue de bouillonner:

 actions: { error(transition, originRoute) { return true; } } 

Comment les deux ont une erreur d'action et un modèle de rendu dans EmberJS

Ajout de la réponse @ ppcano:

Si vous devez afficher le message d'erreur sur le modèle d'erreur, passez l'objet d'erreur dans l'action d'erreur, comme indiqué ici .

 actions: { error: function(error) { // eg you can have a controller for the error route and set error.message and error.status here this.render('error', { into: 'application' }); } }