我想知道如何在不更改當前活動路線的情況下更新URL中的路徑參數。例如,說我有以下途徑:在不改變活動路線的情況下更改Angular 2中的URL路徑參數
{
path: 'pages/:pageId',
component: PageComponent,
children: [
{
path: 'sections/:sectionId',
component: PageSectionComponent,
children: [
{
path: 'details',
component: PageSectionDetailsComponent
}]
}]
}
我試圖解決的問題是,當有人改變:pageId
,我想保持自己的活動路線,同時改變URL。所以,如果他們改變:pageId
從999到777,他們的路線應該改變來自:
pages/999/sections/123/details => pages/777/sections/123/details
pages/999/sections/123 => pages/777/sections/123
此外,我需要做這項工作:sectionId
。例如,從:sectionId
123至456導航:
pages/999/sections/123/details => pages/999/sections/456/details
pages/999/sections/123 => pages/999/sections/456
有我的項目中的幾個孩子的路線,我省略了,所以絕對鏈接將是非常難以維持。我希望我能以某種方式使用當前的ActivatedRoute
,更改我正在更新的單個參數,然後使用Router
導航到該路線。
任何幫助,非常感謝!
附加信息:
我採用了棱角分明4.0.0
有一個類似的問題,使程序在覈心的問題我想解決,但它是過時的:Change a single route parameter on the current route in Angular 2
我不認爲這將適用於我所有的孩子路線。例如,如果我做'this.router.navigate(['/ pages',pageId,'/ sections',sectionId])',那麼'/ pages/999/sections/123/details'將會轉到'/ pages/777/sections/123'而不是'/ pages/777/sections/123/details'。我遇到的問題是如何保持*整個*活動路線,而不用硬編碼我的位置變化。 – SnailCoil
路線如何激活?是否有可能將您的代碼發佈到某處或者提供一個運行程序? – DeborahK
您也可以考慮使用查詢參數而不是所需的參數。這意味着將Ids從路由配置中移除,並將其作爲一組查詢參數傳遞,該參數是具有兩個ID的對象。 – DeborahK