¿Hay alguna manera de tener una redirección condicional en el enrutador Ember.js, sin romper la consistencia interna del enrutador?Emberjs: redirección condicional en el enrutador
Respuesta
Lo que podría hacer (a fecha de hoy), es algo así:
root: Ember.Route.extend({
index: Ember.Route.extend({
enter: function(router) {
var logged = /* get from appropriated source... */;
Ember.run.next(function() {
if (logged) {
router.transitionTo('loggedIn');
} else {
router.transitionTo('loggedOut');
}
});
}
}),
loggedIn: Ember.Route.extend({
// ...
}),
loggedOut: Ember.Route.extend({
// ...
})
})
No se pierda la Ember.run.next
como durante su estadía en enter
, la transición de estado siempre está pendiente, por lo que tiene a la transición después de esto.
lo usamos como se muestra para autentificación, pero se podría imaginar usarlo para cualquier condición que tiene que ...
Si lo hace en 'connectOutlets' en lugar de' enter', no debería necesitar 'Ember.run.next'. –
¡Gracias por la precisión! :-) –
¿tiene un ejemplo de cómo hacerlo con 'connectOutlets'? – Qrilka
Dependiendo de lo que estamos tratando de hacer, es posible que se busca transiciones condicionales. Esto está cubierto en another stackoverflow question, cuyo TLDR debe marcar this fiddle.
El nuevo router ahora incluye un gancho
beforeModel
que se podría incluir la invalidación lógica condicional durante la transición a una ruta. El gancho beforeModel será llamada antes de que el gancho de
model
se llama y se pasa un objeto
transition
. Puede decidir si desea volver a dirigir a otra ruta utilizando
transitionToRoute()
o podría abortar la transición si no quiere volver a dirigir llamando
transition.abort()
- 1. Redirección condicional en JSF
- 2. emberjs binding
- 3. Emberjs rootElement
- 4. Controladores MVC que burbujean en el enrutador?
- 5. SelectionBinding para Checkbox en EmberJs
- 6. Desvincular un enrutador en backbone.js
- 7. EmberJS Historia/Deshacer
- 8. Emberjs - Deshabilitar y habilitar TextField
- 9. EmberJS anidadas vistas y controladores
- 10. ¿Cómo integrar websocket con emberjs?
- 11. Cómo mostrar/ocultar una vista en EmberJS
- 12. ¿Cómo configuro una variable "ENV" en EmberJS?
- 13. Cómo usar emberjs e internacionalización
- 14. Emulación de un enrutador UPnP
- 15. ¿Cómo puedo usar el director como enrutador en expressjs
- 16. Defina una url base en el enrutador Backbone.js
- 17. manipulación acción en vista no enrutador
- 18. Mod-Rewrite o enrutador PHP?
- 19. Campo condicional en el formulario
- 20. ¿Puedo dar a la vista una animación de presentación en emberjs
- 21. ¿Cómo puedo hacer que un servidor TCP funcione detrás de un enrutador (NAT) sin necesidad de configuración de redirección?
- 22. redirección desde el controlador embebido
- 23. Detectar redirección en iFrame
- 24. ¿Admite EmberJs el patrón de evento de publicación/suscriptor?
- 25. Cómo extender espacios de nombres con EmberJS
- 26. vista de emberjs con raphael o d3
- 27. ¿Validar EmberJS TextField sobre la marcha?
- 28. Emberjs datos Cómo cargar hasMany-Data tarde
- 29. ¿Puedo usar JQuery Mobile con EmberJS?
- 30. usando el enrutador de red troncal con Aura
Puede explicar un poco más por qué' volver a la transición a una ruta diferente de 'connectOutlets'? (Soy un novato en brasas, así que tal vez no entiendo lo que estás tratando de hacer) – MilkyWayJoe
Por cierto, las rutas ahora tienen un elemento 'redirect:' que puedes anular, está en el actual guía. – totowtwo