同様の問題がすでにありました。
次のルートを想定しています。
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この例では) - すぐに、ネストされたルートに直接アクセスすると、親ルート モデルを取得できなくなります。