2017-04-16 52 views
0

在我的組件中,我有菜單項列表。一個包含其他頁面。角2:使用不同類型的段塞路由

menu.component.ts

selectedPost(postslug){ 
    console.log('post slg ', postslug); 
    this._router.navigate([postslug]); 
} 

selectedPage(pageslug){ 
    console.log('page slg ', pageslug); 
    this._router.navigate([pageslug]); 
} 

app.routing.module.ts

const routes: Routes = [ 
    { 
    path: '', 
    component: PostListComponent, 
    pathMatch: 'full' 
    } 

    , 
    { 
     path: ':postslug', // This is for the posts 
     component: PostSingleComponent, 
    } 
    , 
    { 
    path: ':pageslug', 
    component: PageSingleComponent // This is for the pages 
    } 


]; 

正如我理解的是,因爲我通過它應該拿起並加載正確的組件定製蛞蝓。但它加載了第一個具有':+'的東西。

有沒有辦法解決這個問題?

如果沒有辦法通過函數推送自定義類別,並且在路由中重定向到類別?

例如,在功能:

selectedPost(catName, postslug){ 
     console.log('post slg ', postslug); 
     this._router.navigate([catName, postslug]); 
    } 

而在路由我會:

const routes: Routes = [ 
    { 
    path: '', 
    component: PostListComponent, 
    pathMatch: 'full' 
    } 

    , 
    { 
     path: 'catName/:postslug', // This is for the posts 
     component: PostSingleComponent, 
    } 
    , 
    { 
    path: ':pageslug', 
    component: PageSingleComponent // This is for the pages 
    } 


]; 
+2

把自己放在路由器的鞋子裏。您被要求導航到/ 1234。你怎麼可能知道1234是帖子還是頁面?如何使用/ posts/1234和/ pages/1234? –

+0

這是我在另一個例子中嘗試的,但是也沒有工作。因爲我不知道如何傳遞自定義類別。 –

+0

如果catName變量的值是'posts'或者'pages',那麼你需要路徑爲'posts /:postslug',另一個爲'pages /:pageslug'。 –

回答

0

嘗試下面,

const routes: Routes = [ 
    { 
    path: '', 
    component: PostListComponent, 
    pathMatch: 'full' 
    } 

    , 
    { 
     path: 'posts/:postslug', // This is for the posts 
     component: PostSingleComponent, 
    } 
    , 
    { 
    path: 'pages/:pageslug', 
    component: PageSingleComponent // This is for the pages 
    } 
]; 

和點擊,

selectedPost(postslug){ 
    console.log('post slg ', postslug); 
    this._router.navigate(['posts',postslug]); 
} 

selectedPage(pageslug){ 
    console.log('page slg ', pageslug); 
    this._router.navigate(['pages',pageslug]); 
} 

檢查有關How Routing works here.的文檔,它詳細介紹了有關路由和導航的內容。

希望這有助於!

+0

謝謝Madhu,但是如果我理解角度文檔,我不會要求堆棧溢出。我只是在角度編碼幾個月後纔開始理解文檔。我會在幾個小時內嘗試一下,並給你反饋。再次感謝你。 –

+0

任何文件有時可能是壓倒性的,我會建議給文件另一個嘗試和時間,有角度的團隊和社區已經做了巨大的工作,爲我們創造這些,乾杯! –