EmberJS: enrutador que se recupera del rechazo
Las promesas rechazadas se pueden almacenar en caché dentro del gancho del modelo, que se pueden convertir en cumplimientos que no detendrán la transición.
Sintaxis
Ember.Route.extend ({
model() {
//return the recovery message
}
});
Ejemplo
El ejemplo que se muestra a continuación muestra cómo se abortará la transición si el modelo rechaza la promesa. Cree una nueva ruta y nómbrela como promisereject y abra el archivo router.js para definir las asignaciones de 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;
Abra el archivo application.hbs creado en app / templates / con el siguiente código:
<h2>Recovering from Rejection</h2>
{{#link-to 'recoveryrejection'}}Click Here{{/link-to}}
Al hacer clic en el enlace anterior, se abrirá la página de la plantilla de rechazo de recuperación. El archivo recoveryrejection.hbs contiene el siguiente código:
{{model.msg}}
{{outlet}}
Ahora abra el archivo recoveryrejection.js creado en app / routes / con el siguiente código:
import Ember from 'ember';
import RSVP from 'rsvp';
export default Ember.Route.extend ({
model() {
//returning recovery message
return {
msg: "Recovered from rejected promise"
};
}
});
Salida
Ejecute el servidor ember y recibirá el siguiente resultado:
Cuando haga clic en el enlace, la promesa será rechazada y mostrará un mensaje de recuperación para continuar con la transición.