Ember.js Новый маршрутизатор: доступ к сериализованным объектам из родительских динамических сегментов маршрута
Было похожеевопрос уже.
Предполагая следующие маршруты:
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');
});
});
});
});
Можно ли получить доступ к обоимpost_id
а такжеcomment_id
вShowCommentRoute
? Иначе я должен забыть о составных ключах в моих моделях?
ЗачемCommentsRoute#model(params)
а такжеCommentsIndexRoute
аргумент всегда пуст? Как получить 'Post
комментарии когда?
мойскрипка.
Запустить этопример тоже (есть консольный журнал, показывающий проблему.
ОБНОВЛЕНИЕ после некоторого исследования:
ТолькоPostRoute
буду иметьparams.post_id
, ТолькоShowCommentRoute
буду иметьparams.comment_id
и не будет.params.post_id
Это неприемлемо для приложений, где модели имеют составные ключи. В случае, когда мы переходим кshowComment
шаг за шагом мы можем получитьComment
пример:
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);
}
});
Но это победилоT работать, если мы непосредственно посещаем/posts/1/comments/1
, В этом случаеthis.controllerFor('post')
всегдаundefined
*IndexRoute
PostRoute
а такжеPostInderRoute
в этом примере)Короче, этоневозможно получить модель родительского маршрута, когданепосредственно посещение вложенный маршрут.