EmberJS - Routeur récupérant après rejet

Les rejets de promesse peuvent être mis en cache dans le hook de modèle qui peut être converti en accomplissements qui ne mettront pas la transition en pause.

Syntaxe

Ember.Route.extend ({
   model() {
      //return the recovery message
   }
});

Exemple

L'exemple ci-dessous montre comment la transition sera abandonnée si le modèle rejette la promesse. Créez une nouvelle route et nommez-la promisereject et ouvrez le fichier router.js pour définir les mappages d'URL -

import Ember from 'ember';                   
//Access to Ember.js library as variable Ember
import config from './config/environment';
//It provides access to app's configuration data as variable config 

//The const declares read only variable
const Router = Ember.Router.extend ({
   location: config.locationType,
   rootURL: config.rootURL
});

//Defines URL mappings that takes parameter as an object to create the routes
Router.map(function() {
   this.route('recoveryrejection');
});

//It specifies Router variable available to other parts of the app
export default Router;

Ouvrez le fichier application.hbs créé sous app / templates / avec le code suivant -

<h2>Recovering from Rejection</h2>
{{#link-to 'recoveryrejection'}}Click Here{{/link-to}}

Lorsque vous cliquez sur le lien ci-dessus, la page du modèle de rejet de récupération s'ouvre. Le fichier recoveryrejection.hbs contient le code suivant -

{{model.msg}}
{{outlet}}

Ouvrez maintenant le fichier recoveryrejection.js créé sous app / routes / avec le code suivant -

import Ember from 'ember';
import RSVP from 'rsvp';

export default Ember.Route.extend ({
   model() {
      //returning recovery message
      return {
         msg: "Recovered from rejected promise"
      };
   }
});

Production

Exécutez le serveur de braises et vous recevrez la sortie suivante -

Lorsque vous cliquez sur le lien, la promesse sera rejetée et il affichera un message de récupération pour continuer la transition -