2017-08-04 32 views
0

在我的Angular 4應用程序中,我有一個Groups部分。它可以顯示所有當前組的列表(/groups),或顯示特定組頁面(/groups/21,即21組ID)。如果沒有指定URL參數,則導航到路線

因此,我想啓用路由到來自相同路由的兩個頁面。

我曾嘗試以下:

{ path: 'groups/:groupid', component: GroupPageComponent, resolve: { group: GroupResolver } }, 

它正常工作,當我瀏覽到一個特定的羣體,但是當我嘗試導航到將軍的所有組「頁面,它只是重定向到默認'*'匹配,甚至沒有加載GroupResolver

如何在URL中沒有指定組ID的情況下啓用導航到「所有組」頁面?

+0

使用導航API –

回答

1

您可以指定兩條路線:

{ 
    path: 'groups', 
    component: GroupPageComponent, 
    resolve: { group: GroupResolver } 
}, 
{ 
    path: 'groups/:groupid', 
    component: GroupPageComponent, 
    resolve: { group: GroupResolver } 
}, 

,或者你可以只使用一個途徑,一個與ID,並在傳遞一個值,如0或-1,當沒有組ID。我在編輯頁面上使用這種技術來處理編輯「新」產品。

或者你可以讓groupId成爲一個可選參數。但是這會改變你的網址:http://localhost:3000/groups;groupid=7這可能不是你想要的。

enter image description here

+1

這比我打算寫答案更好 - 我是包括(當然在反思它不會是必要的原理是一樣的)父母。然而,如果你想將它添加到你的答案中,[這裏是一個展示它的笨蛋](https://plnkr.co/edit/iuaq8UPgPP375AepIjIq?p=preview)。 (如果你覺得有必要,你可以編輯出父組件來匹配你的答案) – 0mpurdy

+1

好的答案!我更喜歡兩種路線的替代方案。因爲那樣你會在瀏覽器字段中獲得更乾淨的URL。 ... /組而不是.../groups/-1。 –

+0

使用2條路線似乎是最好的選擇。 – Jago

相關問題