javascript - traduccion - Ember.js-Estados de error en la estructura de Pod
ember warframe (3)
Aquí está mi estructura dentro de àpp/pods
:
|-application
|-index
|-error
|-user
||-index
||-view
||-edit
Cuando se produce un error, Ember no carga la ruta de error
. En su lugar, intenta cargar una index_error
como index_error
o user_error
pero estos no existen.
¿Cómo obligo a Ember a cargar la ruta de error
raíz en cualquier error?
Ember v2.1 Ember-Cli v1.13.8
La estructura que proporcionaste debería hacer exactamente lo que estás describiendo.
Eche un vistazo a este twiddle para ver un ejemplo. Al hacer clic en "Ver usuario" se realizará la transición a la ruta user.view
, pero al hacer clic en "Editar usuario" se generará una excepción en la ruta user.edit
y en su lugar se user.edit
ruta de error
.
Una cosa a tener en cuenta es que no debe agregar la ruta de error usted mismo en el router.js
. Recibe el error de transición como su modelo, por lo que si haces esto manualmente. this.route(''error'')
y no le das un segmento dinámico, la transición fallará.
Si desea más control sobre lo que sucede exactamente cuando ocurre un error durante cualquier transición, puede implementar la acción de error
en su ruta de aplicación.
actions: {
error(thrownError) {
this.transitionTo(''my-error-route''); // Or whatever other handling you want
}
}
Puedes ver un ejemplo completo de tal arreglo en este sentido . Tenga en cuenta que esto es sutilmente diferente del comportamiento de error predeterminado, ya que producirá una transición completa (es decir, la URL se actualizará) en lugar de simplemente pasar a un subestado.
Logré mostrar una ruta de error dentro de una estructura de pod como la siguiente:
-app
--pods
----something
------template.hbs
------route.js
----error
------template.hbs
Si tiro un error en algo / route.js como el siguiente:
export default Ember.Route.extend({
model() {
throw new Error(''AAA'');
}
});
Y tenga el error/template.hbs
con el contenido:
Arrrh, errror!!!!
Muestra el mensaje de error.
Si quería una sub ruta de error para something
, creo que necesitaría lo siguiente:
-app
--pods
----something
------template.hbs
------route.js
------error
--------template.hbs
----error
------template.hbs
http://guides.emberjs.com/v2.1.0/routing/loading-and-error-substates/
Según la app/application/error
anterior es el valor predeterminado en una estructura de pod.