Enrutamiento dinámico de Ember.js
Frecuentes
Visto 1,779 veces
2
Estoy tratando de crear una aplicación con Ember.js, con enrutamiento, roles, inicio de sesión, cierre de sesión y todo. Mi problema en este momento es que no puedo entender cómo lidiar con el enrutamiento dinámico.
Lo que necesito es poder usar una ruta para la navegación de la barra lateral.
Cuando el usuario inicie sesión, accederá a la vista del panel. Digamos que hacen clic en el menú Publicar a la izquierda, luego verán una vista de publicaciones. Quiero tratar con estos en la misma ruta, algo así como /:module/
.
module: Ember.Route.extend({
route: '/admin/:module/',
doLogout: Ember.Route.transitionTo('login'),
connectOutlets: function (router) {
"use strict";
router.get('applicationController').connectOutlet('sidebar', 'sidebar');
router.get('applicationController').connectOutlet('toolbar', 'toolbar');
}
})
Aquí es donde necesito un poco de ayuda. ¿Cómo funciona exactamente el enrutamiento dinámico? Probablemente lo único que encontré hasta ahora es la esencia de @wycats en Routing aquí, pero no pude resolverlo desde allí: https://gist.github.com/2728699
1 Respuestas
1
Aquí hay una parte simplificada de un enrutamiento dinámico que utilicé:
myroute : Em.Route.extend({
route : '/myroute/:tid', //tid is same as index of Object
deserialize: function(router, params) {
return App.router.getPath('myController.content').objectAt(parseInt(params.tid));
//you can use some other parameters than tid and find the coresponding element
},
serialize: function(router, context) {
return {
tid: App.router.getPath('myController.content').indexOf(context)
}
},
connectOutlets: function(router, context) {
var currentController = router.get('currentController');
currentController.connectOutlet({
name : 'controllername',
outletName : 'outletname',
context: context
});
},
index: Em.Route.extend({
route : '/'
})
}),
Aquí hay una Gist que explica los códigos fuente actuales de Connect Outlets para obtener las últimas actualizaciones https://gist.github.com/3606155
Respondido el 03 de Septiembre de 12 a las 02:09
Gracias por eso, lo intentaré de nuevo en algún momento y volveré aquí con mi historia. - Eduardo Moldován
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas routing ember.js or haz tu propia pregunta.
¿Echaste un vistazo a github.com/emberjs/ember.js/blob/master/packages/ember-routing/… - sabithpocker
no lo hice Lo hare ahora. Desde que hice la pregunta, descubrí que tengo que usar serializar/deserializar, pero simplemente no tuve el tiempo necesario para probarlo. - Eduárd Moldován
Volví a esto, intenté ordenar las cosas durante unas horas, pero sin éxito. Terminé renunciando al enrutamiento dinámico combinado con puntos de venta con nombre, porque no pude hacerlo funcionar. Si alguien tiene un ejemplo así, sería bienvenido. - Eduárd Moldován