我有一個路徑:/應用程序/項目/ 23 /視圖角2個路線PARAMS在子路由
路徑的每個部分是前一部分的孩子,所有的孩子都懶加載(不知道的這裏延遲加載位是相關的)
/app (root component)
/project (child component of app, child route of app)
/23 (route param 'projectId')
/views (child component of project, child route of project)
我試圖訪問路線參數 '專案編號'(在這種情況下:23)
執行以下操作:
constructor(private route: ActivatedRoute) {}
ngOnInit() {
this.route.params.subscribe(params => {
console.log('params:', params);
}
讓我對this.route.params
params: {}
一個空的對象。然而這樣做:
constructor(private route: ActivatedRoute) {}
ngOnInit() {
this.route.parent.parent.params.subscribe(params => {
console.log('params:', params);
}
給我什麼我在尋找:
params: Object {projectId: "23"}
因爲它是一個孩子的路線,我必須指定this.route。 parent.parent獲取(某些)父路由的路由參數?
有來自全途徑獲取則params的沒有更好的辦法,因爲如果發生了什麼:
1)我改變孩子航線的深度和移動它一個步驟下來。我是否必須現在更改我的代碼來說this.route。 parent.parent.parent .params
2)或者說它是第10代(子代,子代?,偉大 - 曾孫?)。然後我必須說:this.route。 parent.parent.parent.parent.parent.parent.parent.parent.parent .params
---編輯:添加了路由配置文件---
app.routing.ts
const routes: Routes = [
{path: 'app', loadChildren: './views/private/private.module#PrivateModule'}
];
private.routing.ts
const routes: Routes = [{
path: '',
component: PrivateComponent,
children: [
{path: 'project', loadChildren: './project/project.module#ProjectModule'},
{path: '', redirectTo: 'project', pathMatch: 'full'}
]
個project.routing.ts
const routes: Routes = [{
path: ':projectId',
component: ProjectComponent,
children: [
{path: 'views', loadChildren: './views/views.module#ViewsModule'},
{path: '', redirectTo: 'views', pathMatch: 'full'}
]
請問您能否顯示您的所有路由配置。你想在哪個組件中訪問'params'? – mxii
@mxii添加了route-configs – Nik