我有以下航線配置:無法訪問URL片段父PARAM
const routes: Routes = [
{
path: ':org',
component: OrgComponent,
resolve: {
org: OrgResolver,
},
children: [
{
path: 'events',
component: EventsListComponent,
},
...orgAdminRoutes
]
}
];
export const orgAdminRoutes: Route[] = [
{
path: 'admin',
component: AdminComponent,
canActivate: [
AdminGuard
],
children: [
{
path: 'users',
component: UsersComponent
}
]
},
];
凡orgAdminRoutes
是在不同的文件中。
但是,當我點擊諸如http://localhost:4200/google/admin
之類的路線時,雖然它嘗試導航到AdminComponent,但CanActivate警衛觸發但顯然無法看到父網址片段。當我console.log ActivatedRouteSnapshot,url
參數只有一個元素('管理員'),雖然_urlSegment
有2預期(不知道這是否是預期的行爲),並且param
是空的。
我應該無法訪問:org
URL參數嗎?我需要它來警惕,但不知道爲什麼我看不到它。
我正在運行Angular 4.0.x,如果它很重要。
檢查[這](HTTPS,因爲你需要從子段訪問它,你可以使用
parent
或pathFromRoot
性質,做://angular.io/docs/ts/latest/api/router/index/ActivatedRoute-interface.html#!#pathFromRoot-anchor) –如何找出發生了什麼問題的方法?很顯然,它與路由匹配,因爲它正在到達正確的組件,但是'params'成員空着,所以我的警衛工作不正常。我總是可以手動分離路線,但這會破壞參數功能的目的。 – RhoVisions
當您導航到'google.com/admin'時,只有'path:'admin','route被激活,'path:':org','沒有被激活 –