2017-02-24 4 views
0
this.route('browse', { path: '/points' }, function() { 
    this.route('quiz', { path: '/quiz' }); 
    this.route('learn', { path: '/learn' }); 
    }); 
    this.route('post', { path: '/post' }, function() { 
    this.route('star', { path: '/star' }); 
    this.route('marked', { path: '/marked' }); 
    }); 

私はこれをやりたいのですが、ネストされたルート間で同じベーステンプレートを共有したいのですが、これらをすべてアプリケーションテンプレートに入れない(そうでなければ、それに多くの条件ブロックを置く必要があります)。私はachiveたい何ネストされたルートパスを親ルートと同じレベルに設定するにはどうすればよいですか?

browse  -> /points 
browse.quiz -> /quiz 
browse.learn -> /learn 

post   -> /posts 
post.star -> /star 
post.marked -> /marked 
+1

を試してみてくださいです。 'browse.quiz' route.jsでは、' templateName: 'browse''と言うことができます。もしこれがあなたが望むものでなければ、 'this.route( 'quiz'、{resetNamespace:true})'に興味があります。 '再び' resetNamespace'は良いアプローチではありません。 – kumkanillam

答えて

1

ルートで `templateName`プロパティがあるresetNamespace

this.route('browse', { path: '/points' }, function() { 
    this.route('quiz', { resetNamespace: true }); 
    this.route('learn', { resetNamespace: true }); 
    }); 
+0

アサーションに失敗しました: '{{link-to" browse.quiz "}}'を定義しようとしましたが、動的セグメントの生成に必要なパラメータを渡しませんでした。 browse.quizという名前のルートはありません –

+1

'quiz'だけで試してみてください – kumkanillam

+0

' browse'を削除しても問題は解決しますが、URLは同じです。それはちょうど私がルートを参照する方法を変更するだけです。 'browse.starred'から' starred'まで。 –

関連する問題