Ember.js New Router: acceso a objetos serializados desde segmentos de ruta dinámicos principales
Hubo una similarproblema ya.
Asumiendo las siguientes rutas:
App.Router.map(function (match) {
match('/').to('index');
match('/posts').to('posts', function (match) {
match('/').to('postsIndex');
match('/:post_id').to('post', function (match) {
match('/comments').to('comments', function (match) {
match('/').to('commentsIndex');
match('/:comment_id').to('showComment');
});
});
});
});
¿Es posible acceder a ambospost_id
ycomment_id
enShowCommentRoute
? De lo contrario, ¿debería olvidarme de las claves compuestas en mis modelos?
Por quéCommentsRoute#model(params)
yCommentsIndexRoute
argumento siempre esta vacio? Como recuperarPost
los comentarios de cuando?
Miviolín.
Ejecuta estoejemplo también (hay un registro de consola que muestra el problema.
ACTUALIZACIÓN después de alguna investigación:
SolamentePostRoute
tendráparams.post_id
. SolamenteShowCommentRoute
tendráparams.comment_id
y no tendráparams.post_id
.
Esto es inaceptable para aplicaciones donde los modelos tienen claves compuestas. En caso de que estemos en transición ashowComment
Paso a paso, podemos obtenerComment
ejemplo:
App.ShowCommentRoute = Ember.Route.extend({
model: function(params) {
var post_id = this.controllerFor('post').get('content.id');
return App.Comment.find(post_id, params.comment_id);
}
});
Pero esto no funcionará si lo visitamos directamente./posts/1/comments/1
. En este casothis.controllerFor('post')
siempreundefined
.
*IndexRoute
(PostRoute
yPostInderRoute
en este ejemplo)En breve, es imposible obtener el modelo de ruta padre cuandovisitando directamente ruta anidada