2017-02-24 111 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' }); 
    }); 

我想這樣做的原因是我想在嵌套的路線之間共享相同的基礎模板,我不把所有這些都放到應用程序模板中(否則我需要放置這麼多的條件塊)。如何設置與父路由相同級別的嵌套路由路徑?

我想才達到什麼是

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

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

有'templateName'財產的途徑。在'browse.quiz' route.js中,你可以說'templateName:'browse''。如果這不是你想要的,那麼你可能對'this.route('quiz',{resetNamespace:true})感興趣''再次'resetNamespace'不是好方法。 – kumkanillam

回答

1

嘗試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

只需單獨嘗試'測驗' – kumkanillam

+0

刪除'瀏覽'確實解決了問題,但是url仍然是一樣的。它只是改變我如何引用路線的方式。從'browse.starred'到'starred'。 –