2017-04-12 44 views
1

我簡單的路由不工作,我不知道爲什麼... 報道如下負載的命令PageNotFoundComponent,而不是OffertDetailComponentAngular2單參數不路由選擇工作

app.routing

{ 
    path: "OffertDetail/:idOffert", 
    component: OffertDetailComponent 
}, 
{ 
    path: '**', 
    component: PageNotFoundComponent 
} 

路線命令

this.router.navigate(['OffertDetail', {idOffert: 1073}]); 

如果我從ap.Routing中刪除「/ idOffert」,並從命令中刪除參數,則組件會正確加載。

感謝支持

回答

1

我相信你是混合查詢參數和路由參數。試着改變你的router.navigate的同時保持路徑"OffertDetail/:idOffert"如下:

this.router.navigate(['OffertDetail', '1073']); 

https://angular.io/docs/ts/latest/guide/router.html#!#query-parameters

要設置查詢參數:

// Set our navigation extras object 
// that contains our global query params and fragment 
let navigationExtras: NavigationExtras = { 
    queryParams: { 'session_id': sessionId }, 
    fragment: 'anchor' 
}; 

// Navigate to the login page with extras 
this.router.navigate(['/login'], navigationExtras); 

要使用路線PARAMS:

this.router.navigate(['/hero', hero.id]); 

並且參數獲取名稱來自路由器配置的:param

要傳遞兩個路由參數說我們的在我們的航線配置路徑是path: "OffertDetail/:idOffert/detail/:someId",我們可以傳遞參數,像這樣:

this.router.navigate(['/OffertDetail', someParameter, 'detail', someOtherValue]); 
+0

感謝,這項工作。爲了完成,你能給我一個簡單的代碼,說明如何傳遞2個參數而不是1嗎? – DarioN1