同様の問題がすでにありました。
次のルートを想定しています。
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);
}
});
しかし、これは直接アクセスすると機能しません/posts/1/comments/1
。この場合this.controllerFor('post')
、常にundefined
.
- 動的セグメントを含むネストされたルートがある場合、このセグメントにアクセスすることはできません
*IndexRoute
(PostRoute
およびPostInderRoute
この例では) - すぐに、ネストされたルートに直接アクセスすると、親ルート モデルを取得できなくなります。